package com.kyleswebspace.propertyanalyzer.model;

import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Serializable;
import java.io.StringWriter;
import java.text.NumberFormat;
import java.util.LinkedList;
import java.util.Vector;

import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import org.w3c.dom.NameList;

import com.kyleswebspace.propertyanalyzer.config.ArcaFont;
import com.kyleswebspace.propertyanalyzer.config.ColorBox;
import com.kyleswebspace.propertyanalyzer.gui.CHMCTablesFrame;
import com.kyleswebspace.propertyanalyzer.gui.Updateable;
import com.kyleswebspace.util.Financial;

public class DataModel implements Serializable {

	private LinkedList<Updateable> panels;

	double realIntRateA;
	double realIntRateB;
	double realIntRateC;
	double realMonthlyPaymentA;
	double realMonthlyPaymentB;
	double realMonthlyPaymentC;
	double realMonthlyPaymentTotal;

	private Vector<JTextField> monthlyFields;
	private Vector<JTextField> yearlyFields;
	private Vector<JLabel> numberLabels;
	private String yearlyRentTotal;
	private JLabel yearlyRentLabel;

	private String address;
	private String numberOfDoors;
	private String localCapRate;
	private String localAppreciation;
	private String askingPrice;
	private String marketValue;
	private String purchasePrice;
	private String appraisal;
	private String legalFees;
	private String inspection;
	private String landXferTax;
	private String enviroReports;
	private String repairsImprovements;
	private String totalPurchaseCosts;
	private String sellerRebate;
	private String purchaseCostsAfterRebate;
	private String downPayment;
	private String purchaseCosts;
	private String lessCashBack;
	private String totalCashRequired;
	private String notes;
	private String rent;
	private String parking;
	private String laundry;
	private String other;
	private String goi;
	private String vacancyRateA;
	private String vacancyRateB;
	private String effectiveGOI;
	private String propertyTaxes;
	private String propertyTaxesPercentage;
	private String insurance;
	private String insurancePercentage;
	private String waterSewer;
	private String waterSewerPercentage;
	private String heat;
	private String heatPercentage;
	private String hydro;
	private String hydroPercentage;
	private String maintenanceA;
	private String maintenanceB;
	private String maintenancePercentage;
	private String managementA;
	private String managementB;
	private String managementPercentage;
	private String snowRemoval;
	private String snowRemovalPercentage;
	private String superIntendant;
	private String superIntendantPercentage;
	private String advertising;
	private String advertisingPercentage;
	private String supplies;
	private String suppliesPercentage;
	private String garbage;
	private String garbagePercentage;
	private String lawn;
	private String lawnPercentage;
	private String licenses;
	private String licensesPercentage;
	private String accounting;
	private String accountingPercentage;
	private String legal;
	private String legalPercentage;
	private String cleaning;
	private String cleaningPercentage;
	private String pool;
	private String poolPercentage;
	private String elevator;
	private String elevatorPercentage;
	private String pestControl;
	private String pestControlPercentage;
	private String replacements;
	private String replacementsPercentage;
	private String condoFees;
	private String condoFeesPercentage;
	private String optional1Label;
	private String optional1Field;
	private String optional1Percentage;
	private String optional2Label;
	private String optional2Field;
	private String optional2Percentage;
	private String otherExpenses;
	private String otherExpensesPercentage;
	private String totalExpenses;
	private String totalExpensesPercentage;

	private boolean overrideAppraisal;
	private boolean overrideLegalFees;
	private boolean overrideInspection;
	private boolean overrideLandXferTax;
	private boolean overrideRent;
	private boolean overrideMaintenance;
	private boolean overrideManagement;
	private boolean overrideLoanAmountA;
	private boolean overrideLoanAmountB;
	private boolean overrideLoanAmountC;
	private boolean overrideCMHCA;
	private boolean overrideCMHCB;
	private boolean overrideCMHCC;

	private String percentPPA;
	private String percentPPB;
	private String percentPPC;
	private String percentPPTotal;
	private String loanAmountA;
	private String loanAmountB;
	private String loanAmountC;
	private String loanAmountTotal;
	private String loanToValueA;
	private String loanToValueB;
	private String loanToValueC;
	private String paymentTypeA;
	private String paymentTypeB;
	private String paymentTypeC;
	private String amortizationA;
	private String amortizationB;
	private String amortizationC;
	private String interestRateA;
	private String interestRateB;
	private String interestRateC;
	private String monthlyIntRateA;
	private String monthlyIntRateB;
	private String monthlyIntRateC;
	private String applyMortgageInsuranceA;
	private String applyMortgageInsuranceB;
	private String applyMortgageInsuranceC;
	private String mortgagePremiumA;
	private String mortgagePremiumB;
	private String mortgagePremiumC;
	private String cmhcFeeA;
	private String cmhcFeeB;
	private String cmhcFeeC;
	private String cmhcFeeTotal;
	private String year1PPDA;
	private String year1PPDB;
	private String year1PPDC;
	private String year1PPDTotal;
	private String monthlyPaymentA;
	private String monthlyPaymentB;
	private String monthlyPaymentC;
	private String monthlyPaymentTotal;
	private String netOperatingIncomeA;
	private String netOperatingIncomeB;
	private String annualDebtServiceA;
	private String annualDebtServiceB;
	private String totalCashflowA;
	private String totalCashflowB;
	private String costPerDoorActual;
	private String costPerDoorTarget;
	private String grossRentMultiplierActual;
	private String grossRentMultiplierTarget;
	private String capRateActual;
	private String capRateTarget;
	private String cashOnCashReturnActual;
	private String cashOnCashReturnTarget;
	private String roiPPDActual;
	private String roiPPDTarget;
	private String roiPPDGrowthLabel;
	private String roiPPDGrowthActual;
	private String roiPPDGrowthTarget;
	private String avgProfitPerDoorActual;
	private String avgProfitPerDoorTarget;
	private String debtCoverageRatioActual;
	private String debtCoverageRatioTarget;
	private String paybackPeriodActual;
	private String paybackPeriodTarget;
	private String estProjectedCashFlow;
	private String yr1PPD;
	private String depreciation;
	private String mortgageInsExpense;
	private String potentialTaxIncome;
	private String appraisalFee1A;
	private String appraisalFee1B;
	private String appraisalFee1C;
	private String appraisalFee2A;
	private String appraisalFee2B;
	private String appraisalFee2C;
	private String appraisalFee3A;
	private String appraisalFee3B;
	private String appraisalFee3C;
	private String appraisalFee4A;
	private String appraisalFee4B;
	private String appraisalFee4C;
	private String legalFee1A;
	private String legalFee1B;
	private String legalFee1C;
	private String legalFee2A;
	private String legalFee2B;
	private String legalFee2C;
	private String legalFee3A;
	private String legalFee3B;
	private String legalFee3C;
	private String legalFee4A;
	private String legalFee4B;
	private String legalFee4C;
	private String inspectionFee1A;
	private String inspectionFee1B;
	private String inspectionFee1C;
	private String inspectionFee2A;
	private String inspectionFee2B;
	private String inspectionFee2C;
	private String inspectionFee3A;
	private String inspectionFee3B;
	private String inspectionFee3C;
	private String inspectionFee4A;
	private String inspectionFee4B;
	private String inspectionFee4C;
	private String cmhc1;
	private String cmhc2;
	private String cmhc3;
	private String cmhc4;
	private String cmhc5;
	private String cmhc6;
	private String cmhc7;
	private String cmhc8;
	private String cmhcB1;
	private String cmhcB2;
	private String cmhcB3;
	private String cmhcB4;
	private String cmhcB5;
	private String cmhcB6;
	private String cmhcB7;
	private String cmhcB8;
	private String cmhcB9;
	private String cmhcB10;
	private String transferTax1A;
	private String transferTax1B;
	private String transferTax1C;
	private String transferTax1D;
	private String transferTax2A;
	private String transferTax2B;
	private String transferTax2C;
	private String transferTax2D;
	private String transferTax3A;
	private String transferTax3B;
	private String transferTax3C;
	private String transferTax3D;
	private String transferTax4A;
	private String transferTax4C;
	private String transferTax4D;
	private String transferTaxTotal;

	public DataModel() {
		address = "n/a";
		numberOfDoors = "0";
		localCapRate = "7.0";
		localAppreciation = "3.0";
		askingPrice = "0";
		marketValue = "0";
		purchasePrice = "0";
		appraisal = "0";
		legalFees = "0";
		inspection = "0";
		landXferTax = "0";
		enviroReports = "0";
		repairsImprovements = "0";
		totalPurchaseCosts = "0";
		sellerRebate = "0";
		purchaseCostsAfterRebate = "0";
		downPayment = "0";
		purchaseCosts = "0";
		lessCashBack = "0";
		totalCashRequired = "0";
		notes = "<< Notes >>";
		rent = "0";
		parking = "0";
		laundry = "0";
		other = "0";
		goi = "0";
		vacancyRateA = "5.0";
		vacancyRateB = "0";
		effectiveGOI = "0";
		propertyTaxes = "0";
		propertyTaxesPercentage = "0";
		insurance = "0";
		insurancePercentage = "0";
		waterSewer = "0";
		waterSewerPercentage = "0";
		heat = "0";
		heatPercentage = "0";
		hydro = "0";
		hydroPercentage = "0";
		maintenanceA = "800";
		maintenanceB = "0";
		maintenancePercentage = "0";
		managementA = "8.0";
		managementB = "0";
		managementPercentage = "0";
		snowRemoval = "0";
		snowRemovalPercentage = "0";
		superIntendant = "0";
		superIntendantPercentage = "0";
		advertising = "0";
		advertisingPercentage = "0";
		supplies = "0";
		suppliesPercentage = "0";
		garbage = "0";
		garbagePercentage = "0";
		lawn = "0";
		lawnPercentage = "0";
		licenses = "0";
		licensesPercentage = "0";
		accounting = "0";
		accountingPercentage = "0";
		legal = "0";
		legalPercentage = "0";
		cleaning = "0";
		cleaningPercentage = "0";
		pool = "0";
		poolPercentage = "0";
		elevator = "0";
		elevatorPercentage = "0";
		pestControl = "0";
		pestControlPercentage = "0";
		replacements = "0";
		replacementsPercentage = "0";
		condoFees = "0";
		condoFeesPercentage = "0";
		optional1Label = "";
		optional1Field = "0";
		optional1Percentage = "0";
		optional2Label = "";
		optional2Field = "0";
		optional2Percentage = "0";
		otherExpenses = "0";
		otherExpensesPercentage = "0";
		totalExpenses = "0";
		totalExpensesPercentage = "0";
		percentPPA = "85.0";
		percentPPB = "0.0";
		percentPPC = "0.0";
		percentPPTotal = "85.0";
		loanAmountA = "0";
		loanAmountB = "0";
		loanAmountC = "0";
		loanAmountTotal = "0";
		loanToValueA = "0.00";
		loanToValueB = "0.00";
		loanToValueC = "0.00";
		paymentTypeA = "pri+int";
		paymentTypeB = "pri+int";
		paymentTypeC = "pri+int";
		amortizationA = "35";
		amortizationB = "35";
		amortizationC = "0";
		interestRateA = "6.0";
		interestRateB = "6.0";
		interestRateC = "6.0";
		monthlyIntRateA = "0.49";
		monthlyIntRateB = "0.49";
		monthlyIntRateC = "0.49";
		applyMortgageInsuranceA = "yes";
		applyMortgageInsuranceB = "no";
		applyMortgageInsuranceC = "no";
		mortgagePremiumA = "0.00";
		mortgagePremiumB = "0.00";
		mortgagePremiumC = "0.00";
		cmhcFeeA = "0";
		cmhcFeeB = "0";
		cmhcFeeC = "0";
		cmhcFeeTotal = "0";
		year1PPDA = "0";
		year1PPDB = "0";
		year1PPDC = "0";
		year1PPDTotal = "0";
		monthlyPaymentA = "0";
		monthlyPaymentB = "0";
		monthlyPaymentC = "0";
		monthlyPaymentTotal = "0";
		netOperatingIncomeA = "0";
		netOperatingIncomeB = "0";
		annualDebtServiceA = "0";
		annualDebtServiceB = "0";
		totalCashflowA = "0";
		totalCashflowB = "0";
		costPerDoorActual = "n/a";
		costPerDoorTarget = "50000";
		grossRentMultiplierActual = "n/a";
		grossRentMultiplierTarget = "7";
		capRateActual = "n/a";
		capRateTarget = "9";
		cashOnCashReturnActual = "n/a";
		roiPPDActual = "n/a";
		roiPPDGrowthActual = "n/a";
		roiPPDGrowthLabel = "ROI + PPD + 3% Growth";
		roiPPDGrowthTarget = "50";
		avgProfitPerDoorActual = "n/a";
		avgProfitPerDoorTarget = "75";
		debtCoverageRatioActual = "n/a";
		debtCoverageRatioTarget = "1.2";
		paybackPeriodActual = "n/a";
		paybackPeriodTarget = "1";
		estProjectedCashFlow = "0";
		yr1PPD = "0";
		depreciation = "0";
		mortgageInsExpense = "0";
		potentialTaxIncome = "0";
		appraisalFee1A = "1";
		appraisalFee1B = "1";
		appraisalFee1C = "500";
		appraisalFee2A = "2";
		appraisalFee2B = "3";
		appraisalFee2C = "1000";
		appraisalFee3A = "4";
		appraisalFee3B = "6";
		appraisalFee3C = "2000";
		appraisalFee4A = "7";
		appraisalFee4B = "999";
		appraisalFee4C = "0";
		legalFee1A = "1";
		legalFee1B = "1";
		legalFee1C = "1300";
		legalFee2A = "2";
		legalFee2B = "3";
		legalFee2C = "1600";
		legalFee3A = "4";
		legalFee3B = "6";
		legalFee3C = "2500";
		legalFee4A = "7";
		legalFee4B = "999";
		legalFee4C = "0";
		inspectionFee1A = "1";
		inspectionFee1B = "1";
		inspectionFee1C = "300";
		inspectionFee2A = "2";
		inspectionFee2B = "3";
		inspectionFee2C = "500";
		inspectionFee3A = "4";
		inspectionFee3B = "6";
		inspectionFee3C = "700";
		inspectionFee4A = "7";
		inspectionFee4B = "999";
		inspectionFee4C = "0";
		cmhc1 = "n/a";
		cmhc2 = "6.5";
		cmhc3 = "4.75";
		cmhc4 = "3.5";
		cmhc5 = "2.5";
		cmhc6 = "1.75";
		cmhc7 = "1.25";
		cmhc8 = "0.2";
		cmhcB1 = "n/a";
		cmhcB2 = "4.5";
		cmhcB3 = "3.5";
		cmhcB4 = "2.25";
		cmhcB5 = "2.0";
		cmhcB6 = "1.75";
		cmhcB7 = "0.25";
		cmhcB8 = "150";
		cmhcB9 = "100";
		cmhcB10 = "55000";
		transferTax1A = "0";
		transferTax1B = "55000";
		transferTax1C = "0.5";
		transferTax1D = "0";
		transferTax2A = "55000";
		transferTax2B = "250000";
		transferTax2C = "1.0";
		transferTax2D = "0";
		transferTax3A = "250000";
		transferTax3B = "400000";
		transferTax3C = "1.5";
		transferTax3D = "0";
		transferTax4A = "400000";
		transferTax4C = "2.0";
		transferTax4D = "0";
		transferTaxTotal = "0";

		numberLabels = new Vector<JLabel>();
		monthlyFields = new Vector<JTextField>();
		yearlyFields = new Vector<JTextField>();
		yearlyRentLabel = new JLabel("Yearly Total: $" + 0);

		for (int kk = 0; kk < 50; kk++) {
			JLabel number = new JLabel(new Integer(kk + 1).toString());
			JTextField month = new JTextField(6);
			JTextField year = new JTextField(6);

			number.setFont(ArcaFont.appFont);
			month.setFont(ArcaFont.appFont);
			month.setBackground(ColorBox.fieldColor);
			month.setHorizontalAlignment(JTextField.RIGHT);
			year.setFont(ArcaFont.appFont);
			year.setHorizontalAlignment(JTextField.RIGHT);

			month.setText("0");
			year.setText("0");

			numberLabels.add(number);
			monthlyFields.add(month);
			yearlyFields.add(year);
		}

		panels = new LinkedList<Updateable>();
	}

	public void reset() {
		address = "n/a";
		numberOfDoors = "0";
		localCapRate = "7.0";
		localAppreciation = "3.0";
		askingPrice = "0";
		marketValue = "0";
		purchasePrice = "0";
		appraisal = "0";
		legalFees = "0";
		inspection = "0";
		landXferTax = "0";
		enviroReports = "0";
		repairsImprovements = "0";
		totalPurchaseCosts = "0";
		sellerRebate = "0";
		purchaseCostsAfterRebate = "0";
		downPayment = "0";
		purchaseCosts = "0";
		lessCashBack = "0";
		totalCashRequired = "0";
		notes = "<< Notes >>";
		rent = "0";
		parking = "0";
		laundry = "0";
		other = "0";
		goi = "0";
		vacancyRateA = "5.0";
		vacancyRateB = "0";
		effectiveGOI = "0";
		propertyTaxes = "0";
		propertyTaxesPercentage = "0";
		insurance = "0";
		insurancePercentage = "0";
		waterSewer = "0";
		waterSewerPercentage = "0";
		heat = "0";
		heatPercentage = "0";
		hydro = "0";
		hydroPercentage = "0";
		maintenanceA = "800";
		maintenanceB = "0";
		maintenancePercentage = "0";
		managementA = "8.0";
		managementB = "0";
		managementPercentage = "0";
		snowRemoval = "0";
		snowRemovalPercentage = "0";
		superIntendant = "0";
		superIntendantPercentage = "0";
		advertising = "0";
		advertisingPercentage = "0";
		supplies = "0";
		suppliesPercentage = "0";
		garbage = "0";
		garbagePercentage = "0";
		lawn = "0";
		lawnPercentage = "0";
		licenses = "0";
		licensesPercentage = "0";
		accounting = "0";
		accountingPercentage = "0";
		legal = "0";
		legalPercentage = "0";
		cleaning = "0";
		cleaningPercentage = "0";
		pool = "0";
		poolPercentage = "0";
		elevator = "0";
		elevatorPercentage = "0";
		pestControl = "0";
		pestControlPercentage = "0";
		replacements = "0";
		replacementsPercentage = "0";
		condoFees = "0";
		condoFeesPercentage = "0";
		optional1Label = "";
		optional1Field = "0";
		optional1Percentage = "0";
		optional2Label = "";
		optional2Field = "0";
		optional2Percentage = "0";
		otherExpenses = "0";
		otherExpensesPercentage = "0";
		totalExpenses = "0";
		totalExpensesPercentage = "0";
		percentPPA = "85.0";
		percentPPB = "0.0";
		percentPPC = "0.0";
		percentPPTotal = "85.0";
		loanAmountA = "0";
		loanAmountB = "0";
		loanAmountC = "0";
		loanAmountTotal = "0";
		loanToValueA = "0.00";
		loanToValueB = "0.00";
		loanToValueC = "0.00";
		paymentTypeA = "pri+int";
		paymentTypeB = "pri+int";
		paymentTypeC = "pri+int";
		amortizationA = "35";
		amortizationB = "35";
		amortizationC = "0";
		interestRateA = "6.0";
		interestRateB = "6.0";
		interestRateC = "6.0";
		monthlyIntRateA = "0.49";
		monthlyIntRateB = "0.49";
		monthlyIntRateC = "0.49";
		applyMortgageInsuranceA = "yes";
		applyMortgageInsuranceB = "no";
		applyMortgageInsuranceC = "no";
		mortgagePremiumA = "0.00";
		mortgagePremiumB = "0.00";
		mortgagePremiumC = "0.00";
		cmhcFeeA = "0";
		cmhcFeeB = "0";
		cmhcFeeC = "0";
		cmhcFeeTotal = "0";
		year1PPDA = "0";
		year1PPDB = "0";
		year1PPDC = "0";
		year1PPDTotal = "0";
		monthlyPaymentA = "0";
		monthlyPaymentB = "0";
		monthlyPaymentC = "0";
		monthlyPaymentTotal = "0";
		netOperatingIncomeA = "0";
		netOperatingIncomeB = "0";
		annualDebtServiceA = "0";
		annualDebtServiceB = "0";
		totalCashflowA = "0";
		totalCashflowB = "0";
		costPerDoorActual = "n/a";
		costPerDoorTarget = "50000";
		grossRentMultiplierActual = "n/a";
		grossRentMultiplierTarget = "7";
		capRateActual = "n/a";
		capRateTarget = "9";
		cashOnCashReturnActual = "n/a";
		roiPPDActual = "n/a";
		roiPPDGrowthActual = "n/a";
		roiPPDGrowthTarget = "50";
		avgProfitPerDoorActual = "n/a";
		avgProfitPerDoorTarget = "75";
		debtCoverageRatioActual = "n/a";
		debtCoverageRatioTarget = "1.2";
		paybackPeriodActual = "n/a";
		paybackPeriodTarget = "1";
		estProjectedCashFlow = "0";
		yr1PPD = "0";
		depreciation = "0";
		mortgageInsExpense = "0";
		potentialTaxIncome = "0";
		appraisalFee1A = "1";
		appraisalFee1B = "1";
		appraisalFee1C = "500";
		appraisalFee2A = "2";
		appraisalFee2B = "3";
		appraisalFee2C = "1000";
		appraisalFee3A = "4";
		appraisalFee3B = "6";
		appraisalFee3C = "2000";
		appraisalFee4A = "7";
		appraisalFee4B = "999";
		appraisalFee4C = "0";
		legalFee1A = "1";
		legalFee1B = "1";
		legalFee1C = "1300";
		legalFee2A = "2";
		legalFee2B = "3";
		legalFee2C = "1600";
		legalFee3A = "4";
		legalFee3B = "6";
		legalFee3C = "2500";
		legalFee4A = "7";
		legalFee4B = "999";
		legalFee4C = "0";
		inspectionFee1A = "1";
		inspectionFee1B = "1";
		inspectionFee1C = "300";
		inspectionFee2A = "2";
		inspectionFee2B = "3";
		inspectionFee2C = "500";
		inspectionFee3A = "4";
		inspectionFee3B = "6";
		inspectionFee3C = "700";
		inspectionFee4A = "7";
		inspectionFee4B = "999";
		inspectionFee4C = "0";
		cmhc1 = "n/a";
		cmhc2 = "6.5";
		cmhc3 = "4.75";
		cmhc4 = "3.5";
		cmhc5 = "2.5";
		cmhc6 = "1.75";
		cmhc7 = "1.25";
		cmhc8 = "0.2";
		cmhcB1 = "n/a";
		cmhcB2 = "4.5";
		cmhcB3 = "3.5";
		cmhcB4 = "2.25";
		cmhcB5 = "2.0";
		cmhcB6 = "1.75";
		cmhcB7 = "0.25";
		cmhcB8 = "150";
		cmhcB9 = "100";
		cmhcB10 = "55000";
		transferTax1A = "0";
		transferTax1B = "55000";
		transferTax1C = "0.5";
		transferTax1D = "0";
		transferTax2A = "55000";
		transferTax2B = "250000";
		transferTax2C = "1.0";
		transferTax2D = "0";
		transferTax3A = "250000";
		transferTax3B = "400000";
		transferTax3C = "1.5";
		transferTax3D = "0";
		transferTax4A = "400000";
		transferTax4C = "2.0";
		transferTax4D = "0";
		transferTaxTotal = "0";

		numberLabels = new Vector<JLabel>();
		monthlyFields = new Vector<JTextField>();
		yearlyFields = new Vector<JTextField>();
		yearlyRentLabel = new JLabel("Yearly Total: $" + 0);

		for (int kk = 0; kk < 50; kk++) {
			JLabel number = new JLabel(new Integer(kk + 1).toString());
			JTextField month = new JTextField(6);
			JTextField year = new JTextField(6);

			number.setFont(ArcaFont.appFont);
			month.setFont(ArcaFont.appFont);
			month.setBackground(ColorBox.fieldColor);
			month.setHorizontalAlignment(JTextField.RIGHT);
			year.setFont(ArcaFont.appFont);
			year.setHorizontalAlignment(JTextField.RIGHT);

			month.setText("0");
			year.setText("0");

			numberLabels.add(number);
			monthlyFields.add(month);
			yearlyFields.add(year);
		}

		updateInterface();
	}

	public void register(Updateable panel) {
		panels.add(panel);
	}

	public void updateInterface() {
		/* try { */
		recalculate();
		/*
		 * }catch (Exception e) { StringWriter writer = new StringWriter();
		 * PrintWriter pWriter = new PrintWriter(writer);
		 * e.printStackTrace(pWriter); String error = writer.toString();
		 * //JOptionPane.showConfirmDialog(null, error); }
		 */

		for (Updateable a : panels) {
			a.updateFields();
		}
	}

	// CALCULATION FUNCTION
	public void recalculate() {
		// general purpose memory slots
		int a, b, c, d, e, f, g;
		int sum = 0;
		double h, i, j, k, l, m;

		// TRANSFER TAX/////////////////////////////////////////////////////
		int pp, ef, utf;
		double taxPercent;

		ef = new Integer(transferTax1A).intValue();
		pp = new Integer(purchasePrice).intValue();
		utf = new Integer(transferTax1B).intValue();
		taxPercent = new Double(transferTax1C).doubleValue();
		taxPercent = taxPercent * .01;
		a = pp - ef;
		b = utf - ef;
		c = (a < b ? a : b);
		h = (double) c * taxPercent;
		d = (h > 0 ? (int) (Math.rint(h)) : 0);
		sum += d;
		transferTax1D = new Integer(d).toString().replaceAll(",", "");

		ef = new Integer(transferTax2A).intValue();
		pp = new Integer(purchasePrice).intValue();
		utf = new Integer(transferTax2B).intValue();
		taxPercent = new Double(transferTax2C).doubleValue();
		taxPercent = taxPercent * .01;
		a = pp - ef;
		b = utf - ef;
		c = (a < b ? a : b);
		h = (double) c * taxPercent;
		d = (h > 0 ? (int) (Math.rint(h)) : 0);
		sum += d;
		transferTax2D = new Integer(d).toString().replaceAll(",", "");

		ef = new Integer(transferTax3A).intValue();
		pp = new Integer(purchasePrice).intValue();
		utf = new Integer(transferTax3B).intValue();
		taxPercent = new Double(transferTax3C).doubleValue();
		taxPercent = taxPercent * .01;
		a = pp - ef;
		b = utf - ef;
		c = (a < b ? a : b);
		h = (double) c * taxPercent;
		d = (h > 0 ? (int) (Math.rint(h)) : 0);
		sum += d;
		transferTax3D = new Integer(d).toString().replaceAll(",", "");

		ef = new Integer(transferTax4A).intValue();
		pp = new Integer(purchasePrice).intValue();
		taxPercent = new Double(transferTax4C).doubleValue();
		taxPercent = taxPercent * .01;
		a = pp - ef;
		h = (double) a * taxPercent;
		d = (h > 0 ? (int) (Math.rint(h)) : 0);
		sum += d;
		transferTax4D = new Integer(d).toString().replaceAll(",", "");

		transferTaxTotal = new Integer(sum).toString().replaceAll(",", "");

		// FINANCING/////////////////////////////////////////////////////////////////
		percentPPTotal = new Double(Double.parseDouble(percentPPA)
				+ Double.parseDouble(percentPPB)
				+ Double.parseDouble(percentPPC)).toString()
				.replaceAll(",", "");
		sum = 0;
		h = new Integer(purchasePrice).intValue()
				* (new Double(percentPPA).doubleValue() * .01);
		sum += h;
		if (!overrideLoanAmountA)
			loanAmountA = new Integer((int) (Math.rint(h))).toString()
					.replaceAll(",", "");
		h = new Integer(purchasePrice).intValue()
				* (new Double(percentPPB).doubleValue() * .01);
		sum += h;
		if (!overrideLoanAmountB)
			loanAmountB = new Integer((int) (Math.rint(h))).toString()
					.replaceAll(",", "");
		h = new Integer(purchasePrice).intValue()
				* (new Double(percentPPC).doubleValue() * .01);
		sum += h;
		if (!overrideLoanAmountC)
			loanAmountC = new Integer((int) (Math.rint(h))).toString()
					.replaceAll(",", "");

		loanAmountTotal = new Integer(Integer.parseInt(loanAmountA)
				+ Integer.parseInt(loanAmountB) + Integer.parseInt(loanAmountC))
				.toString().replaceAll(",", "");

		pp = new Integer(purchasePrice).intValue();
		a = pp - Integer.parseInt(loanAmountA);
		if (pp != 0)
			h = (double) a / (double) pp;
		else
			h = a;
		i = 1 - h;
		j = 0 > i ? 0 : i;
		loanToValueA = new Integer((int) Math.rint(j * 100)).toString()
				.replaceAll(",", "");
		if (pp == 0) {
			loanToValueA = "0.00";
		}
		pp = new Integer(purchasePrice).intValue();
		a = pp - Integer.parseInt(loanAmountB);
		if (pp != 0)
			h = (double) a / (double) pp;
		else
			h = a;
		i = 1 - h;
		j = 0 > i ? 0 : i;
		loanToValueB = new Integer((int) Math.rint(j * 100)).toString()
				.replaceAll(",", "");
		if (pp == 0) {
			loanToValueB = "0.00";
		}
		pp = new Integer(purchasePrice).intValue();
		a = pp - Integer.parseInt(loanAmountC);
		if (pp != 0)
			h = (double) a / (double) pp;
		else
			h = a;
		i = 1 - h;
		j = 0 > i ? 0 : i;
		loanToValueC = new Integer((int) Math.rint(j * 100)).toString()
				.replaceAll(",", "");
		if (pp == 0) {
			loanToValueC = "0.00";
		}

		double intRate;
		NumberFormat nf = NumberFormat.getInstance();
		nf.setMaximumFractionDigits(2);
		if (paymentTypeA.equalsIgnoreCase("pri+int")) {
			intRate = Double.parseDouble(interestRateA);
			intRate = intRate * .01;
			intRate = 1 + (intRate / 2);
			intRate = Math.pow(intRate, 0.1666667);
			intRate--;
		} else {
			intRate = Double.parseDouble(interestRateA);
			intRate = intRate * .01;
			intRate = intRate / 12;
		}
		intRate = intRate * 100;
		realIntRateA = intRate;
		monthlyIntRateA = nf.format(new Double(intRate)).replaceAll(",", "");
		if (paymentTypeB.equalsIgnoreCase("pri+int")) {
			intRate = Double.parseDouble(interestRateB);
			intRate = intRate * .01;
			intRate = 1 + (intRate / 2);
			intRate = Math.pow(intRate, 0.1666667);
			intRate--;
		} else {
			intRate = Double.parseDouble(interestRateB);
			intRate = intRate * .01;
			intRate = intRate / 12;
		}
		intRate = intRate * 100;
		realIntRateB = intRate;
		monthlyIntRateB = nf.format(new Double(intRate)).replaceAll(",", "");
		if (paymentTypeC.equalsIgnoreCase("pri+int")) {
			intRate = Double.parseDouble(interestRateC);
			intRate = intRate * .01;
			intRate = 1 + (intRate / 2);
			intRate = Math.pow(intRate, 0.1666667);
			intRate--;
		} else {
			intRate = Double.parseDouble(interestRateC);
			intRate = intRate * .01;
			intRate = intRate / 12;
		}
		intRate = intRate * 100;
		realIntRateC = intRate;
		monthlyIntRateC = nf.format(new Double(intRate)).replaceAll(",", "");

		double cmhcRating = 0.00;

		// A
		if (!(loanToValueA.equalsIgnoreCase("n/a"))) {
			if (applyMortgageInsuranceA.equalsIgnoreCase("yes") &&
					(Double.parseDouble(percentPPA) != 0)) {
				if (Double.parseDouble(numberOfDoors) <= 4) {
					if ((Double.parseDouble(loanToValueA) <= 100)
							&& (Double.parseDouble(loanToValueA) > 95)) {
						cmhcRating = 0.00;
					} else if ((Double.parseDouble(loanToValueA) <= 95)
							&& (Double.parseDouble(loanToValueA) > 90)) {
						cmhcRating = 6.5;
					} else if ((Double.parseDouble(loanToValueA) <= 90)
							&& (Double.parseDouble(loanToValueA) > 85)) {
						cmhcRating = 4.75;
					} else if ((Double.parseDouble(loanToValueA) <= 85)
							&& (Double.parseDouble(loanToValueA) > 80)) {
						cmhcRating = 3.5;
					} else if ((Double.parseDouble(loanToValueA) <= 80)
							&& (Double.parseDouble(loanToValueA) > 75)) {
						cmhcRating = 2.5;
					} else if ((Double.parseDouble(loanToValueA) <= 75)
							&& (Double.parseDouble(loanToValueA) > 65)) {
						cmhcRating = 1.75;
					} else if ((Double.parseDouble(loanToValueA) <= 65)
							&& (Double.parseDouble(loanToValueA) > 0)) {
						cmhcRating = 1.25;
					}
					i = (((Double.parseDouble(amortizationA) - 25)) / 5);
					h = cmhcRating + (i < 0 ? 0 : i)
							* Double.parseDouble(cmhc8);
					if (h < 0)
						h = 0;
					if (cmhcRating != 0)
						mortgagePremiumA = nf.format((new Double(h)))
								.replaceAll(",", "");
					else
						mortgagePremiumA = "0.00";
				} else {
					if ((Double.parseDouble(loanToValueA) <= 100)
							&& (Double.parseDouble(loanToValueA) > 85)) {
						cmhcRating = 0.00;
					} else if ((Double.parseDouble(loanToValueA) <= 85)
							&& (Double.parseDouble(loanToValueA) > 80)) {
						cmhcRating = 4.5;
					} else if ((Double.parseDouble(loanToValueA) <= 80)
							&& (Double.parseDouble(loanToValueA) > 75)) {
						cmhcRating = 3.5;
					} else if ((Double.parseDouble(loanToValueA) <= 75)
							&& (Double.parseDouble(loanToValueA) > 70)) {
						cmhcRating = 2.25;
					} else if ((Double.parseDouble(loanToValueA) <= 70)
							&& (Double.parseDouble(loanToValueA) > 65)) {
						cmhcRating = 2.0;
					} else if ((Double.parseDouble(loanToValueA) <= 65)
							&& (Double.parseDouble(loanToValueA) > 0)) {
						cmhcRating = 1.75;
					}
					i = (((Double.parseDouble(amortizationA) - 25)) / 5);
					h = cmhcRating + (i < 0 ? 0 : i)
							* Double.parseDouble(cmhc8);
					if (h < 0)
						h = 0;
					if (cmhcRating != 0)
						mortgagePremiumA = nf.format((new Double(h)))
								.replaceAll(",", "");
					else
						mortgagePremiumA = "0.00";
				}
			} else {
				mortgagePremiumA = "0.00";
			}
		} else {
			mortgagePremiumA = "0.00";
		}
		// B
		if (!(loanToValueB.equalsIgnoreCase("n/a"))) {
			if (applyMortgageInsuranceB.equalsIgnoreCase("yes") &&
					(Double.parseDouble(percentPPB) != 0)) {
				if (Double.parseDouble(numberOfDoors) <= 4) {
					if ((Double.parseDouble(loanToValueB) <= 100)
							&& (Double.parseDouble(loanToValueB) > 95)) {
						cmhcRating = 0.00;
					} else if ((Double.parseDouble(loanToValueB) <= 95)
							&& (Double.parseDouble(loanToValueB) > 90)) {
						cmhcRating = 6.5;
					} else if ((Double.parseDouble(loanToValueB) <= 90)
							&& (Double.parseDouble(loanToValueB) > 85)) {
						cmhcRating = 4.75;
					} else if ((Double.parseDouble(loanToValueB) <= 85)
							&& (Double.parseDouble(loanToValueB) > 80)) {
						cmhcRating = 3.5;
					} else if ((Double.parseDouble(loanToValueB) <= 80)
							&& (Double.parseDouble(loanToValueB) > 75)) {
						cmhcRating = 2.5;
					} else if ((Double.parseDouble(loanToValueB) <= 75)
							&& (Double.parseDouble(loanToValueB) > 65)) {
						cmhcRating = 1.75;
					} else if ((Double.parseDouble(loanToValueB) <= 65)
							&& (Double.parseDouble(loanToValueB) > 0)) {
						cmhcRating = 1.25;
					}
					i = (((Double.parseDouble(amortizationB) - 25)) / 5);
					h = cmhcRating + (i < 0 ? 0 : i)
							* Double.parseDouble(cmhc8);
					if (h < 0)
						h = 0;
					if (cmhcRating != 0)
						mortgagePremiumB = nf.format((new Double(h)))
								.replaceAll(",", "");
					else
						mortgagePremiumB = "0.00";
				} else {
					if ((Double.parseDouble(loanToValueB) <= 100)
							&& (Double.parseDouble(loanToValueB) > 85)) {
						cmhcRating = 0.00;
					} else if ((Double.parseDouble(loanToValueB) <= 85)
							&& (Double.parseDouble(loanToValueB) > 80)) {
						cmhcRating = 4.5;
					} else if ((Double.parseDouble(loanToValueB) <= 80)
							&& (Double.parseDouble(loanToValueB) > 75)) {
						cmhcRating = 3.5;
					} else if ((Double.parseDouble(loanToValueB) <= 75)
							&& (Double.parseDouble(loanToValueB) > 70)) {
						cmhcRating = 2.25;
					} else if ((Double.parseDouble(loanToValueB) <= 70)
							&& (Double.parseDouble(loanToValueB) > 65)) {
						cmhcRating = 2.0;
					} else if ((Double.parseDouble(loanToValueB) <= 65)
							&& (Double.parseDouble(loanToValueB) > 0)) {
						cmhcRating = 1.75;
					}
					i = (((Double.parseDouble(amortizationB) - 25)) / 5);
					h = cmhcRating + (i < 0 ? 0 : i)
							* Double.parseDouble(cmhc8);
					if (h < 0)
						h = 0;
					if (cmhcRating != 0)
						mortgagePremiumB = nf.format((new Double(h)))
								.replaceAll(",", "");
					else
						mortgagePremiumB = "0.00";
				}
			} else {
				mortgagePremiumB = "0.00";
			}
		} else {
			mortgagePremiumB = "0.00";
		}
		// C
		if (!(loanToValueC.equalsIgnoreCase("n/a"))) {
			if (applyMortgageInsuranceC.equalsIgnoreCase("yes") &&
					(Double.parseDouble(percentPPC) != 0)) {
				if (Double.parseDouble(numberOfDoors) <= 4) {
					if ((Double.parseDouble(loanToValueC) <= 100)
							&& (Double.parseDouble(loanToValueC) > 95)) {
						cmhcRating = 0.00;
					} else if ((Double.parseDouble(loanToValueC) <= 95)
							&& (Double.parseDouble(loanToValueC) > 90)) {
						cmhcRating = 6.5;
					} else if ((Double.parseDouble(loanToValueC) <= 90)
							&& (Double.parseDouble(loanToValueC) > 85)) {
						cmhcRating = 4.75;
					} else if ((Double.parseDouble(loanToValueC) <= 85)
							&& (Double.parseDouble(loanToValueC) > 80)) {
						cmhcRating = 3.5;
					} else if ((Double.parseDouble(loanToValueC) <= 80)
							&& (Double.parseDouble(loanToValueC) > 75)) {
						cmhcRating = 2.5;
					} else if ((Double.parseDouble(loanToValueC) <= 75)
							&& (Double.parseDouble(loanToValueC) > 65)) {
						cmhcRating = 1.75;
					} else if ((Double.parseDouble(loanToValueC) <= 65)
							&& (Double.parseDouble(loanToValueC) > 0)) {
						cmhcRating = 1.25;
					}
					i = (((Double.parseDouble(amortizationB) - 25)) / 5);
					h = cmhcRating + (i < 0 ? 0 : i)
							* Double.parseDouble(cmhc8);
					if (h < 0)
						h = 0;
					if (cmhcRating != 0)
						mortgagePremiumC = nf.format((new Double(h)))
								.replaceAll(",", "");
					else
						mortgagePremiumC = "0.00";
				} else {
					if ((Double.parseDouble(loanToValueC) <= 100)
							&& (Double.parseDouble(loanToValueC) > 85)) {
						cmhcRating = 0.00;
					} else if ((Double.parseDouble(loanToValueC) <= 85)
							&& (Double.parseDouble(loanToValueC) > 80)) {
						cmhcRating = 4.5;
					} else if ((Double.parseDouble(loanToValueC) <= 80)
							&& (Double.parseDouble(loanToValueC) > 75)) {
						cmhcRating = 3.5;
					} else if ((Double.parseDouble(loanToValueC) <= 75)
							&& (Double.parseDouble(loanToValueC) > 70)) {
						cmhcRating = 2.25;
					} else if ((Double.parseDouble(loanToValueC) <= 70)
							&& (Double.parseDouble(loanToValueC) > 65)) {
						cmhcRating = 2.0;
					} else if ((Double.parseDouble(loanToValueC) <= 65)
							&& (Double.parseDouble(loanToValueC) > 0)) {
						cmhcRating = 1.75;
					}
					i = (((Double.parseDouble(amortizationB) - 25)) / 5);
					h = cmhcRating + (i < 0 ? 0 : i)
							* Double.parseDouble(cmhc8);
					if (h < 0)
						h = 0;
					if (cmhcRating != 0)
						mortgagePremiumC = nf.format((new Double(h)))
								.replaceAll(",", "");
					else
						mortgagePremiumC = "0.00";
				}
			} else {
				mortgagePremiumC = "0.00";
			}
		} else {
			mortgagePremiumC = "0.00";
		}

		int maxAppFee = Integer.parseInt(cmhcB10);
		int loanAmount;
		// A
		if (Double.parseDouble(mortgagePremiumA) == 0) {
			f = 0;
		} else {
			a = Integer.parseInt(numberOfDoors);
			b = Integer.parseInt(cmhcB8); // app fee per unit up to 100
			c = (((a - 100) < 0) ? 0 : (a - 100)) * Integer.parseInt(cmhcB9); // app
			// fee
			// per
			// unit
			// past
			// 100
			d = ((a < 100) ? a : 100) * Integer.parseInt(cmhcB8);
			e = c + d;
			f = ((maxAppFee < d) ? maxAppFee : d);
			loanAmount = Integer.parseInt(loanAmountA);
			f += (loanAmount * (Double.parseDouble(mortgagePremiumA) * .01));
		}
		if (!overrideCMHCA)
			cmhcFeeA = new Integer(f).toString().replaceAll(",", "");
		// B
		if (Double.parseDouble(mortgagePremiumB) == 0) {
			f = 0;
		} else {
			a = Integer.parseInt(numberOfDoors);
			b = Integer.parseInt(cmhcB8); // app fee per unit up to 100
			c = (((a - 100) < 0) ? 0 : (a - 100)) * Integer.parseInt(cmhcB9); // app
			// fee
			// per
			// unit
			// past
			// 100
			d = ((a < 100) ? a : 100) * Integer.parseInt(cmhcB8);
			e = c + d;
			f = ((maxAppFee < d) ? maxAppFee : d);
			loanAmount = Integer.parseInt(loanAmountB);
			f += (loanAmount * (Double.parseDouble(mortgagePremiumB) * .01));
		}
		if (!overrideCMHCB)
			cmhcFeeB = new Integer(f).toString().replaceAll(",", "");
		// C
		if ((Double.parseDouble(mortgagePremiumC) == 0)) {
			f = 0;
		} else {
			a = Integer.parseInt(numberOfDoors);
			b = Integer.parseInt(cmhcB8); // app fee per unit up to 100
			c = (((a - 100) < 0) ? 0 : (a - 100)) * Integer.parseInt(cmhcB9); // app
			// fee
			// per
			// unit
			// past
			// 100
			d = ((a < 100) ? a : 100) * Integer.parseInt(cmhcB8);
			e = c + d;
			f = ((maxAppFee < d) ? maxAppFee : d);
			loanAmount = Integer.parseInt(loanAmountC);
			f += (loanAmount * (Double.parseDouble(mortgagePremiumC) * .01));
		}
		if (!overrideCMHCC)
			cmhcFeeC = new Integer(f).toString().replaceAll(",", "");

		cmhcFeeTotal = new Integer((Integer.parseInt(cmhcFeeA)
				+ Integer.parseInt(cmhcFeeB) + Integer.parseInt(cmhcFeeC)))
				.toString().replaceAll(",", "");

		if ((paymentTypeA.equalsIgnoreCase("int"))
				|| ((Integer.parseInt(loanAmountA))
						+ (Integer.parseInt(cmhcFeeA)) == 0)) {
			year1PPDA = "0";
		} else {
			double intr = Double.parseDouble(monthlyIntRateA) * .01;
			int NPer = Integer.parseInt(amortizationA) * 12;
			int PV = Integer.parseInt(loanAmountA) + Integer.parseInt(cmhcFeeA);
			int start = 1, end = 12;
			boolean Due = false;
			double result = Financial.getCumPrincipal(realIntRateA * .01, NPer,
					PV, start, end, Due);

			if (new Double(result).isNaN())
				result = 0.00;

			year1PPDA = nf.format((int) Math.rint(result)).replaceAll(",", "");
		}
		if ((paymentTypeB.equalsIgnoreCase("int"))
				|| ((Integer.parseInt(loanAmountB))
						+ (Integer.parseInt(cmhcFeeB)) == 0)) {
			year1PPDB = "0";
		} else {
			double intr = Double.parseDouble(monthlyIntRateB) * .01;
			int NPer = Integer.parseInt(amortizationB) * 12;
			int PV = Integer.parseInt(loanAmountB) + Integer.parseInt(cmhcFeeB);
			int start = 1, end = 12;
			boolean Due = false;
			double result = Financial.getCumPrincipal(realIntRateB * .01, NPer,
					PV, start, end, Due);

			if (new Double(result).isNaN())
				result = 0.00;

			year1PPDB = nf.format((int) Math.rint(result)).replaceAll(",", "");
		}
		if ((paymentTypeC.equalsIgnoreCase("int"))
				|| ((Integer.parseInt(loanAmountC))
						+ (Integer.parseInt(cmhcFeeC)) == 0)) {
			year1PPDC = "0";
		} else {
			double intr = Double.parseDouble(monthlyIntRateC) * .01;
			int NPer = Integer.parseInt(amortizationC) * 12;
			int PV = Integer.parseInt(loanAmountC) + Integer.parseInt(cmhcFeeC);
			int start = 1, end = 12;
			boolean Due = false;
			double result = Financial.getCumPrincipal(realIntRateC * .01, NPer,
					PV, start, end, Due);

			if (new Double(result).isNaN())
				result = 0.00;

			year1PPDC = nf.format((int) Math.rint(result)).replaceAll(",", "");
		}

		double ppdTotal = (Double.parseDouble(year1PPDA)
				+ Double.parseDouble(year1PPDB) + Double.parseDouble(year1PPDC));
		year1PPDTotal = new Integer((int) Math.rint(ppdTotal)).toString();

		// A
		if (paymentTypeA.equalsIgnoreCase("int")) {
			h = new Double(((Integer.parseInt(loanAmountA) + Integer
					.parseInt(cmhcFeeA))
					* realIntRateA * .01));
			realMonthlyPaymentA = h;
			monthlyPaymentA = nf.format(h).replaceAll(",", "");
		} else {
			if (((Double.parseDouble(monthlyIntRateA)) != 0)
					&& (Integer.parseInt(amortizationA)) != 0
					&& (paymentTypeA.equalsIgnoreCase("pri+int"))) {
				h = Financial.getPMT(realIntRateA * .01, Integer
						.parseInt(amortizationA) * 12, Integer
						.parseInt(loanAmountA)
						+ Integer.parseInt(cmhcFeeA));
				realMonthlyPaymentA = h;
				monthlyPaymentA = nf.format((int) Math.rint(h)).replaceAll(",",
						"");
			}
		}
		// B
		if (paymentTypeB.equalsIgnoreCase("int")) {
			h = new Double(((Integer.parseInt(loanAmountB) + Integer
					.parseInt(cmhcFeeB))
					* realIntRateB * .01));
			realMonthlyPaymentB = h;
			monthlyPaymentB = nf.format((int) Math.rint(h)).replaceAll(",", "");
		} else {
			if (((Double.parseDouble(monthlyIntRateB)) != 0)
					&& (Integer.parseInt(amortizationB)) != 0
					&& (paymentTypeB.equalsIgnoreCase("pri+int"))) {
				h = Financial.getPMT(realIntRateB * .01, Integer
						.parseInt(amortizationB) * 12, Integer
						.parseInt(loanAmountB)
						+ Integer.parseInt(cmhcFeeB));
				realMonthlyPaymentB = h;
				monthlyPaymentB = nf.format((int) Math.rint(h)).replaceAll(",",
						"");
			}
		}
		// C
		if (paymentTypeC.equalsIgnoreCase("int")) {
			h = new Double(((Integer.parseInt(loanAmountC) + Integer
					.parseInt(cmhcFeeC))
					* realIntRateC * .01));
			realMonthlyPaymentC = h;
			monthlyPaymentC = nf.format((int) Math.rint(h)).replaceAll(",", "");
		} else {
			if (((Double.parseDouble(monthlyIntRateC)) != 0)
					&& (Integer.parseInt(amortizationC)) != 0
					&& (paymentTypeC.equalsIgnoreCase("pri+int"))) {
				h = Financial.getPMT(realIntRateC * .01, Integer
						.parseInt(amortizationC) * 12, Integer
						.parseInt(loanAmountC)
						+ Integer.parseInt(cmhcFeeC));
				realMonthlyPaymentC = h;
				monthlyPaymentC = nf.format(h).replaceAll(",", "");
			}
		}
		h = realMonthlyPaymentA + realMonthlyPaymentB + realMonthlyPaymentC;

		realMonthlyPaymentTotal = h;
		monthlyPaymentTotal = nf.format((int) Math.rint(h)).replaceAll(",", "");

		// INCOME/////////////////////////////////////////////////////////////////
		if (!overrideRent) {
			int yearlyRentTotal = 0;
			for (int ii = 0; ii < 50; ii++) {
				double yearly = Double.parseDouble(monthlyFields.get(ii).getText()) * 12;
				String temp = new Integer((int) Math.rint(yearly)).toString();
				yearlyFields.get(ii).setText(temp);
				yearlyRentTotal += yearly;
			}
			rent = new Integer(yearlyRentTotal).toString();
			yearlyRentLabel.setText("Yearly Total: $" + yearlyRentTotal);
		}
		
		a = (new Integer(Integer.parseInt(rent) + Integer.parseInt(parking)
				+ Integer.parseInt(laundry) + Integer.parseInt(other)));
		goi = new Integer(a).toString().replaceAll(",", "");

		h = (Double.parseDouble(vacancyRateA) * .01) * a;
		vacancyRateB = new Integer((int) Math.rint(h)).toString().replaceAll(
				",", "");

		effectiveGOI = new Integer(a - (int) Math.rint(h)).toString()
				.replaceAll(",", "");

		// EXPENSES//////////////////////////////////////////////////////////////
		if (!overrideMaintenance) {
			maintenanceB = new Integer(Integer.parseInt(maintenanceA)
					* Integer.parseInt(numberOfDoors)).toString().replaceAll(
					",", "");
		}

		h = new Double((Double.parseDouble(managementA) * .01)
				* Double.parseDouble(goi));

		if (!overrideManagement) {
			managementB = nf.format(h).replaceAll(",", "");
		}

		double aaa = Double.parseDouble(propertyTaxes.replaceAll(",", ""))
				+ Double.parseDouble(insurance.replaceAll(",", ""))
				+ Double.parseDouble(waterSewer.replaceAll(",", ""))
				+ Double.parseDouble(heat.replaceAll(",", ""))
				+ Double.parseDouble(hydro.replaceAll(",", ""))
				+ Double.parseDouble(maintenanceB.replaceAll(",", ""))
				+ Double.parseDouble(managementB.replaceAll(",", ""))
				+ Double.parseDouble(snowRemoval.replaceAll(",", ""))
				+ Double.parseDouble(superIntendant.replaceAll(",", ""))
				+ Double.parseDouble(advertising.replaceAll(",", ""))
				+ Double.parseDouble(supplies.replaceAll(",", ""))
				+ Double.parseDouble(garbage.replaceAll(",", ""))
				+ Double.parseDouble(lawn.replaceAll(",", ""))
				+ Double.parseDouble(licenses.replaceAll(",", ""))
				+ Double.parseDouble(accounting.replaceAll(",", ""))
				+ Double.parseDouble(legal.replaceAll(",", ""))
				+ Double.parseDouble(cleaning.replaceAll(",", ""))
				+ Double.parseDouble(pool.replaceAll(",", ""))
				+ Double.parseDouble(elevator.replaceAll(",", ""))
				+ Double.parseDouble(pestControl.replaceAll(",", ""))
				+ Double.parseDouble(replacements.replaceAll(",", ""))
				+ Double.parseDouble(condoFees.replaceAll(",", ""))
				+ Double.parseDouble(optional1Field.replaceAll(",", ""))
				+ Double.parseDouble(optional2Field.replaceAll(",", ""))
				+ Double.parseDouble(otherExpenses.replaceAll(",", ""));
		totalExpenses = new Integer((int) Math.rint(aaa)).toString()
				.replaceAll(",", "");

		// CASHFLOW SUMMARY/////////////////////////////////////////////////////
		a = ((Integer.parseInt(goi)) - (Integer.parseInt(vacancyRateB)))
				- (Integer.parseInt(totalExpenses));
		netOperatingIncomeA = new Integer(a / 12).toString()
				.replaceAll(",", "");
		netOperatingIncomeB = new Integer(a).toString().replaceAll(",", "");

		b = (int) Math.rint(realMonthlyPaymentTotal * 12);
		annualDebtServiceA = new Integer(b / 12).toString().replaceAll(",", "");
		annualDebtServiceB = new Integer(b).toString().replaceAll(",", "");

		c = a - b;
		totalCashflowA = new Integer(c / 12).toString().replaceAll(",", "");
		totalCashflowB = new Integer(c).toString().replaceAll(",", "");

		// POTENTIAL TAXABLE INCOME////////////////////////////////////////
		estProjectedCashFlow = totalCashflowB;
		yr1PPD = year1PPDTotal;
		depreciation = new Integer((int) Math.rint(Double
				.parseDouble(purchasePrice) * .8 * .04)).toString().replaceAll(
				",", "");
		mortgageInsExpense = new Integer(Integer.parseInt(cmhcFeeA) / 5)
				.toString().replaceAll(",", "");
		potentialTaxIncome = new Integer(Integer.parseInt(estProjectedCashFlow)
				+ Integer.parseInt(yr1PPD) - Integer.parseInt(depreciation)
				- Integer.parseInt(mortgageInsExpense)).toString().replaceAll(
				",", "");

		// PROPERTY INFO////////////////////////////////////////////////////
		marketValue = new Integer((int) Math.rint(a
				/ ((Double.parseDouble(localCapRate)) * .01))).toString()
				.replaceAll(",", "");

		// PURCHASE COSTS/////////////////////////////////////////////////////
		d = Integer.parseInt(numberOfDoors);

		if (!overrideAppraisal) {
			if (d >= Integer.parseInt(appraisalFee1A)
					&& d <= Integer.parseInt(appraisalFee1B)) {
				a = Integer.parseInt(appraisalFee1C);
			} else if (d >= Integer.parseInt(appraisalFee2A)
					&& d <= Integer.parseInt(appraisalFee2B)) {
				a = Integer.parseInt(appraisalFee2C);
			} else if (d >= Integer.parseInt(appraisalFee3A)
					&& d <= Integer.parseInt(appraisalFee3B)) {
				a = Integer.parseInt(appraisalFee3C);
			} else {
				a = Integer.parseInt(appraisalFee4C);
			}
			appraisal = new Integer(a).toString().replaceAll(",", "");
		}

		if (!overrideLegalFees) {
			if (d >= Integer.parseInt(legalFee1A)
					&& d <= Integer.parseInt(legalFee1B)) {
				a = Integer.parseInt(legalFee1C);
			} else if (d >= Integer.parseInt(legalFee2A)
					&& d <= Integer.parseInt(legalFee2B)) {
				a = Integer.parseInt(legalFee2C);
			} else if (d >= Integer.parseInt(legalFee3A)
					&& d <= Integer.parseInt(legalFee3B)) {
				a = Integer.parseInt(legalFee3C);
			} else {
				a = Integer.parseInt(legalFee4C);
			}
			legalFees = new Integer(a).toString().replaceAll(",", "");
		}

		if (!overrideInspection) {
			if (d >= Integer.parseInt(inspectionFee1A)
					&& d <= Integer.parseInt(inspectionFee1B)) {
				a = Integer.parseInt(inspectionFee1C);
			} else if (d >= Integer.parseInt(inspectionFee2A)
					&& d <= Integer.parseInt(inspectionFee2B)) {
				a = Integer.parseInt(inspectionFee2C);
			} else if (d >= Integer.parseInt(inspectionFee3A)
					&& d <= Integer.parseInt(inspectionFee3B)) {
				a = Integer.parseInt(inspectionFee3C);
			} else {
				a = Integer.parseInt(inspectionFee4C);
			}
			inspection = new Integer(a).toString().replaceAll(",", "");
		}

		if (!overrideLandXferTax) {
			landXferTax = transferTaxTotal;
		}

		a = Integer.parseInt(appraisal) + Integer.parseInt(legalFees)
				+ Integer.parseInt(inspection) + Integer.parseInt(landXferTax)
				+ Integer.parseInt(enviroReports)
				+ Integer.parseInt(repairsImprovements);
		totalPurchaseCosts = new Integer(a).toString().replaceAll(",", "");

		purchaseCostsAfterRebate = new Integer(Integer
				.parseInt(totalPurchaseCosts)
				- Integer.parseInt(sellerRebate)).toString()
				.replaceAll(",", "");

		// CASH REQUIREMENTS/////////////////////////////////////////////////
		downPayment = new Integer(Integer.parseInt(purchasePrice)
				- Integer.parseInt(loanAmountTotal)).toString().replaceAll(",",
				"");
		purchaseCosts = purchaseCostsAfterRebate;
		totalCashRequired = new Integer(
				(Integer.parseInt(downPayment) + Integer
						.parseInt(purchaseCosts))
						- Integer.parseInt(lessCashBack)).toString()
				.replaceAll(",", "");

		// KEY INDICATORS/////////////////////////////////////////////////////
		if (numberOfDoors.equalsIgnoreCase("0")
				|| purchasePrice.equalsIgnoreCase("0"))
			costPerDoorActual = "n/a";
		else {
			costPerDoorActual = new Integer(Integer.parseInt(purchasePrice)
					/ Integer.parseInt(numberOfDoors)).toString().replaceAll(
					",", "");
		}
		
		if (purchasePrice.equalsIgnoreCase("0") || goi.equalsIgnoreCase("0"))
			grossRentMultiplierActual = "n/a";
		else {
			grossRentMultiplierActual = nf.format(
					(Math.rint(Double.parseDouble(purchasePrice)
							/ Double.parseDouble(goi) * 10)) * .1).toString()
					.replaceAll(",", "");
		}

		if (netOperatingIncomeB.equalsIgnoreCase("0")
				|| purchasePrice.equalsIgnoreCase("0"))
			capRateActual = "n/a";
		else {
			h = new Double(Double.parseDouble(netOperatingIncomeB)
					/ Double.parseDouble(purchasePrice));
			capRateActual = nf.format(h * 100).replaceAll(",", "");
		}

		if (totalCashflowB.equalsIgnoreCase("0")
				|| totalCashRequired.equalsIgnoreCase("0"))
			cashOnCashReturnActual = "n/a";
		else {
			cashOnCashReturnActual = nf.format(
					(100 * (Double.parseDouble(totalCashflowB) / Double
							.parseDouble(totalCashRequired)))).toString()
					.replaceAll(",", "")
					+ "%";
		}

		roiPPDGrowthLabel = "ROI + PPD + "
				+ (int) Double.parseDouble(localAppreciation) + "% Growth";

		if (totalCashflowB.equalsIgnoreCase("0")
		// || year1PPDTotal.equalsIgnoreCase("0")
				|| totalCashRequired.equalsIgnoreCase("0"))
			roiPPDActual = "n/a";
		else {
			double temp = (100 * (Double.parseDouble(totalCashflowB) + Double
					.parseDouble(year1PPDTotal)) / Double
					.parseDouble(totalCashRequired));
			roiPPDActual = nf.format(temp).toString().replaceAll(",", "");
		}

		if (totalCashflowB.equalsIgnoreCase("0")
				// || year1PPDTotal.equalsIgnoreCase("0")
				|| totalCashRequired.equalsIgnoreCase("0")
				|| purchasePrice.equalsIgnoreCase("0"))
			roiPPDGrowthActual = "n/a";
		else {
			double temp = (100 * ((Double.parseDouble(purchasePrice) * (Double
					.parseDouble(localAppreciation) * .01))
					+ Double.parseDouble(totalCashflowB) + Double
					.parseDouble(year1PPDTotal)) / Double
					.parseDouble(totalCashRequired));
			roiPPDGrowthActual = nf.format(temp).toString().replaceAll(",", "");
		}

		if (totalCashflowA.equalsIgnoreCase("0")
				|| numberOfDoors.equalsIgnoreCase("0"))
			avgProfitPerDoorActual = "n/a";
		else {
			avgProfitPerDoorActual = nf.format(Math.rint(Double
					.parseDouble(totalCashflowA)
					/ Double.parseDouble(numberOfDoors) * 100) * .01).replaceAll(",", "");
		}

		if (netOperatingIncomeA.equalsIgnoreCase("0")
				|| annualDebtServiceA.equalsIgnoreCase("0"))
			debtCoverageRatioActual = "n/a";
		else {
			debtCoverageRatioActual = nf.format(
					(Double.parseDouble(netOperatingIncomeA) / Double
							.parseDouble(annualDebtServiceA))).toString()
					.replaceAll(",", "");
		}

		if (!(Integer.parseInt(totalCashRequired) > 0)
				|| !(Integer.parseInt(totalCashflowB) > 0)
				|| ((Math.abs(Integer.parseInt(totalCashRequired)
						/ Integer.parseInt(totalCashflowB))) >= 100))
			paybackPeriodActual = "n/a";
		else {
			paybackPeriodActual = new Integer(Integer
					.parseInt(totalCashRequired)
					/ Integer.parseInt(totalCashflowB)).toString().replaceAll(
					",", "")
					+ " yrs";
		}

		// calculate and update percentage fields
		if (Double.parseDouble(propertyTaxes) == 0
				|| Double.parseDouble(goi) == 0)
			propertyTaxesPercentage = "0";
		else
			propertyTaxesPercentage = nf.format((Math
					.rint((Double.parseDouble(propertyTaxes) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(insurance) == 0 || Double.parseDouble(goi) == 0)
			insurancePercentage = "0";
		else
			insurancePercentage = nf
					.format((Math.rint((Double.parseDouble(insurance) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(waterSewer) == 0 || Double.parseDouble(goi) == 0)
			waterSewerPercentage = "0";
		else
			waterSewerPercentage = nf
					.format((Math.rint((Double.parseDouble(waterSewer) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(heat) == 0 || Double.parseDouble(goi) == 0)
			heatPercentage = "0";
		else
			heatPercentage = nf
					.format((Math.rint((Double.parseDouble(heat) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(hydro) == 0 || Double.parseDouble(goi) == 0)
			hydroPercentage = "0";
		else
			hydroPercentage = nf
					.format((Math.rint((Double.parseDouble(hydro) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(maintenanceB) == 0
				|| Double.parseDouble(goi) == 0)
			maintenancePercentage = "0";
		else
			maintenancePercentage = nf.format((Math
					.rint((Double.parseDouble(maintenanceB) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(managementB) == 0
				|| Double.parseDouble(goi) == 0)
			managementPercentage = "0";
		else
			managementPercentage = nf.format((Math
					.rint((Double.parseDouble(managementB) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(snowRemoval) == 0
				|| Double.parseDouble(goi) == 0)
			snowRemovalPercentage = "0";
		else
			snowRemovalPercentage = nf.format((Math
					.rint((Double.parseDouble(snowRemoval) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(superIntendant) == 0
				|| Double.parseDouble(goi) == 0)
			superIntendantPercentage = "0";
		else
			superIntendantPercentage = nf.format((Math
					.rint((Double.parseDouble(superIntendant) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(advertising) == 0
				|| Double.parseDouble(goi) == 0)
			advertisingPercentage = "0";
		else
			advertisingPercentage = nf.format((Math
					.rint((Double.parseDouble(advertising) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(supplies) == 0 || Double.parseDouble(goi) == 0)
			suppliesPercentage = "0";
		else
			suppliesPercentage = nf
					.format((Math.rint((Double.parseDouble(supplies) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(garbage) == 0 || Double.parseDouble(goi) == 0)
			garbagePercentage = "0";
		else
			garbagePercentage = nf
					.format((Math.rint((Double.parseDouble(garbage) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(lawn) == 0 || Double.parseDouble(goi) == 0)
			lawnPercentage = "0";
		else
			lawnPercentage = nf
					.format((Math.rint((Double.parseDouble(lawn) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(licenses) == 0 || Double.parseDouble(goi) == 0)
			licensesPercentage = "0";
		else
			licensesPercentage = nf
					.format((Math.rint((Double.parseDouble(licenses) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(accounting) == 0 || Double.parseDouble(goi) == 0)
			accountingPercentage = "0";
		else
			accountingPercentage = nf
					.format((Math.rint((Double.parseDouble(accounting) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(legal) == 0 || Double.parseDouble(goi) == 0)
			legalPercentage = "0";
		else
			legalPercentage = nf
					.format((Math.rint((Double.parseDouble(legal) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(cleaning) == 0 || Double.parseDouble(goi) == 0)
			cleaningPercentage = "0";
		else
			cleaningPercentage = nf
					.format((Math.rint((Double.parseDouble(cleaning) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(pool) == 0 || Double.parseDouble(goi) == 0)
			poolPercentage = "0";
		else
			poolPercentage = nf
					.format((Math.rint((Double.parseDouble(pool) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(elevator) == 0 || Double.parseDouble(goi) == 0)
			elevatorPercentage = "0";
		else
			elevatorPercentage = nf
					.format((Math.rint((Double.parseDouble(elevator) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(pestControl) == 0
				|| Double.parseDouble(goi) == 0)
			pestControlPercentage = "0";
		else
			pestControlPercentage = nf.format((Math
					.rint((Double.parseDouble(pestControl) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(replacements) == 0
				|| Double.parseDouble(goi) == 0)
			replacementsPercentage = "0";
		else
			replacementsPercentage = nf.format((Math
					.rint((Double.parseDouble(replacements) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(condoFees) == 0 || Double.parseDouble(goi) == 0)
			condoFeesPercentage = "0";
		else
			condoFeesPercentage = nf
					.format((Math.rint((Double.parseDouble(condoFees) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(optional1Field) == 0
				|| Double.parseDouble(goi) == 0)
			optional1Percentage = "0";
		else
			optional1Percentage = nf.format((Math
					.rint((Double.parseDouble(optional1Field) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(optional2Field) == 0
				|| Double.parseDouble(goi) == 0)
			optional2Percentage = "0";
		else
			optional2Percentage = nf.format((Math
					.rint((Double.parseDouble(optional2Field) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(otherExpenses) == 0
				|| Double.parseDouble(goi) == 0)
			otherExpensesPercentage = "0";
		else
			otherExpensesPercentage = nf.format((Math
					.rint((Double.parseDouble(otherExpenses) / Double
							.parseDouble(goi)) * 1000)) * .1);

		if (Double.parseDouble(totalExpenses) == 0
				|| Double.parseDouble(goi) == 0)
			totalExpensesPercentage = "0";
		else
			totalExpensesPercentage = nf.format((Math
					.rint((Double.parseDouble(totalExpenses) / Double
							.parseDouble(goi)) * 1000)) * .1);

	}// end recalculate

	public String getTransferTax1C() {
		return transferTax1C;
	}

	public void setTransferTax1C(String transferTax1C) {
		this.transferTax1C = transferTax1C;
	}

	public String getTransferTax1D() {
		return transferTax1D;
	}

	public void setTransferTax1D(String transferTax1D) {
		this.transferTax1D = transferTax1D;
	}

	public String getTransferTax2C() {
		return transferTax2C;
	}

	public void setTransferTax2C(String transferTax2C) {
		this.transferTax2C = transferTax2C;
	}

	public String getTransferTax2D() {
		return transferTax2D;
	}

	public void setTransferTax2D(String transferTax2D) {
		this.transferTax2D = transferTax2D;
	}

	public String getTransferTax3C() {
		return transferTax3C;
	}

	public void setTransferTax3C(String transferTax3C) {
		this.transferTax3C = transferTax3C;
	}

	public String getTransferTax3D() {
		return transferTax3D;
	}

	public void setTransferTax3D(String transferTax3D) {
		this.transferTax3D = transferTax3D;
	}

	public String getTransferTax4C() {
		return transferTax4C;
	}

	public void setTransferTax4C(String transferTax4C) {
		this.transferTax4C = transferTax4C;
	}

	public String getTransferTax4D() {
		return transferTax4D;
	}

	public void setTransferTax4D(String transferTax4D) {
		this.transferTax4D = transferTax4D;
	}

	public String getTransferTaxTotal() {
		return transferTaxTotal;
	}

	public void setTransferTaxTotal(String transferTaxTotal) {
		this.transferTaxTotal = transferTaxTotal;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public String getNumberOfDoors() {
		return numberOfDoors;
	}

	public void setNumberOfDoors(String numberOfDoors) {
		this.numberOfDoors = numberOfDoors;
	}

	public String getLocalCapRate() {
		return localCapRate;
	}

	public void setLocalCapRate(String localCapRate) {
		this.localCapRate = localCapRate;
	}

	public String getLocalAppreciation() {
		return localAppreciation;
	}

	public void setLocalAppreciation(String localAppreciation) {
		this.localAppreciation = localAppreciation;
	}

	public String getAskingPrice() {
		return askingPrice;
	}

	public void setAskingPrice(String askingPrice) {
		this.askingPrice = askingPrice;
	}

	public String getMarketValue() {
		return marketValue;
	}

	public void setMarketValue(String marketValue) {
		this.marketValue = marketValue;
	}

	public String getPurchasePrice() {
		return purchasePrice;
	}

	public void setPurchasePrice(String purchasePrice) {
		this.purchasePrice = purchasePrice;
	}

	public String getAppraisal() {
		return appraisal;
	}

	public void setAppraisal(String appraisal) {
		this.appraisal = appraisal;
	}

	public String getLegalFees() {
		return legalFees;
	}

	public void setLegalFees(String legalFees) {
		this.legalFees = legalFees;
	}

	public String getInspection() {
		return inspection;
	}

	public void setInspection(String inspection) {
		this.inspection = inspection;
	}

	public String getLandXferTax() {
		return landXferTax;
	}

	public void setLandXferTax(String landXferTax) {
		this.landXferTax = landXferTax;
	}

	public String getRepairsImprovements() {
		return repairsImprovements;
	}

	public void setRepairsImprovements(String repairsImprovements) {
		this.repairsImprovements = repairsImprovements;
	}

	public String getEnviroReports() {
		return enviroReports;
	}

	public void setEnviroReports(String enviroReports) {
		this.enviroReports = enviroReports;
	}

	public String getTotalPurchaseCosts() {
		return totalPurchaseCosts;
	}

	public void setTotalPurchaseCosts(String totalPurchaseCosts) {
		this.totalPurchaseCosts = totalPurchaseCosts;
	}

	public String getSellerRebate() {
		return sellerRebate;
	}

	public void setSellerRebate(String sellerRebate) {
		this.sellerRebate = sellerRebate;
	}

	public String getPurchaseCostsAfterRebate() {
		return purchaseCostsAfterRebate;
	}

	public void setPurchaseCostsAfterRebate(String purchaseCostsAfterRebate) {
		this.purchaseCostsAfterRebate = purchaseCostsAfterRebate;
	}

	public String getDownPayment() {
		return downPayment;
	}

	public void setDownPayment(String downPayment) {
		this.downPayment = downPayment;
	}

	public String getPurchaseCosts() {
		return purchaseCosts;
	}

	public void setPurchaseCosts(String purchaseCosts) {
		this.purchaseCosts = purchaseCosts;
	}

	public String getLessCashBack() {
		return lessCashBack;
	}

	public void setLessCashBack(String lessCashBack) {
		this.lessCashBack = lessCashBack;
	}

	public String getTotalCashRequired() {
		return totalCashRequired;
	}

	public void setTotalCashRequired(String totalCashRequired) {
		this.totalCashRequired = totalCashRequired;
	}

	public String getNotes() {
		return notes;
	}

	public void setNotes(String notes) {
		this.notes = notes;
	}

	public String getRent() {
		return rent;
	}

	public void setRent(String rent) {
		this.rent = rent;
	}

	public String getParking() {
		return parking;
	}

	public void setParking(String parking) {
		this.parking = parking;
	}

	public String getLaundry() {
		return laundry;
	}

	public void setLaundry(String laundry) {
		this.laundry = laundry;
	}

	public String getOther() {
		return other;
	}

	public void setOther(String other) {
		this.other = other;
	}

	public String getGoi() {
		return goi;
	}

	public void setGoi(String goi) {
		this.goi = goi;
	}

	public String getVacancyRateA() {
		return vacancyRateA;
	}

	public void setVacancyRateA(String vacancyRateA) {
		this.vacancyRateA = vacancyRateA;
	}

	public String getVacancyRateB() {
		return vacancyRateB;
	}

	public void setVacancyRateB(String vacancyRateB) {
		this.vacancyRateB = vacancyRateB;
	}

	public String getEffectiveGOI() {
		return effectiveGOI;
	}

	public void setEffectiveGOI(String effectiveGOI) {
		this.effectiveGOI = effectiveGOI;
	}

	public String getPropertyTaxes() {
		return propertyTaxes;
	}

	public void setPropertyTaxes(String propertyTaxes) {
		this.propertyTaxes = propertyTaxes;
	}

	public String getInsurance() {
		return insurance;
	}

	public void setInsurance(String insurance) {
		this.insurance = insurance;
	}

	public String getWaterSewer() {
		return waterSewer;
	}

	public void setWaterSewer(String waterSewer) {
		this.waterSewer = waterSewer;
	}

	public String getHeat() {
		return heat;
	}

	public void setHeat(String heat) {
		this.heat = heat;
	}

	public String getHydro() {
		return hydro;
	}

	public void setHydro(String hydro) {
		this.hydro = hydro;
	}

	public String getMaintenanceA() {
		return maintenanceA;
	}

	public void setMaintenanceA(String maintenanceA) {
		this.maintenanceA = maintenanceA;
	}

	public String getMaintenanceB() {
		return maintenanceB;
	}

	public void setMaintenanceB(String maintenanceB) {
		this.maintenanceB = maintenanceB;
	}

	public String getManagementA() {
		return managementA;
	}

	public void setManagementA(String managementA) {
		this.managementA = managementA;
	}

	public String getManagementB() {
		return managementB;
	}

	public void setManagementB(String managementB) {
		this.managementB = managementB;
	}

	public String getSnowRemoval() {
		return snowRemoval;
	}

	public void setSnowRemoval(String snowRemoval) {
		this.snowRemoval = snowRemoval;
	}

	public String getSuperIntendant() {
		return superIntendant;
	}

	public void setSuperIntendant(String superIntendant) {
		this.superIntendant = superIntendant;
	}

	public String getAdvertising() {
		return advertising;
	}

	public void setAdvertising(String advertising) {
		this.advertising = advertising;
	}

	public String getSupplies() {
		return supplies;
	}

	public void setSupplies(String supplies) {
		this.supplies = supplies;
	}

	public String getGarbage() {
		return garbage;
	}

	public void setGarbage(String garbage) {
		this.garbage = garbage;
	}

	public String getLawn() {
		return lawn;
	}

	public void setLawn(String lawn) {
		this.lawn = lawn;
	}

	public String getLicenses() {
		return licenses;
	}

	public void setLicenses(String licenses) {
		this.licenses = licenses;
	}

	public String getAccounting() {
		return accounting;
	}

	public void setAccounting(String accounting) {
		this.accounting = accounting;
	}

	public String getLegal() {
		return legal;
	}

	public void setLegal(String legal) {
		this.legal = legal;
	}

	public String getCleaning() {
		return cleaning;
	}

	public void setCleaning(String cleaning) {
		this.cleaning = cleaning;
	}

	public String getPool() {
		return pool;
	}

	public void setPool(String pool) {
		this.pool = pool;
	}

	public String getElevator() {
		return elevator;
	}

	public void setElevator(String elevator) {
		this.elevator = elevator;
	}

	public String getPestControl() {
		return pestControl;
	}

	public void setPestControl(String pestControl) {
		this.pestControl = pestControl;
	}

	public String getReplacements() {
		return replacements;
	}

	public void setReplacements(String replacements) {
		this.replacements = replacements;
	}

	public String getCondoFees() {
		return condoFees;
	}

	public void setCondoFees(String condoFees) {
		this.condoFees = condoFees;
	}

	public String getOtherExpenses() {
		return otherExpenses;
	}

	public void setOtherExpenses(String otherExpenses) {
		this.otherExpenses = otherExpenses;
	}

	public String getTotalExpenses() {
		return totalExpenses;
	}

	public void setTotalExpenses(String totalExpenses) {
		this.totalExpenses = totalExpenses;
	}

	public String getPercentPPA() {
		return percentPPA;
	}

	public void setPercentPPA(String percentPPA) {
		this.percentPPA = percentPPA;
	}

	public String getPercentPPB() {
		return percentPPB;
	}

	public void setPercentPPB(String percentPPB) {
		this.percentPPB = percentPPB;
	}

	public String getPercentPPC() {
		return percentPPC;
	}

	public void setPercentPPC(String percentPPC) {
		this.percentPPC = percentPPC;
	}

	public String getPercentPPTotal() {
		return percentPPTotal;
	}

	public void setPercentPPTotal(String percentPPTotal) {
		this.percentPPTotal = percentPPTotal;
	}

	public String getLoanAmountA() {
		return loanAmountA;
	}

	public void setLoanAmountA(String loanAmountA) {
		this.loanAmountA = loanAmountA;
	}

	public String getLoanAmountB() {
		return loanAmountB;
	}

	public void setLoanAmountB(String loanAmountB) {
		this.loanAmountB = loanAmountB;
	}

	public String getLoanAmountC() {
		return loanAmountC;
	}

	public void setLoanAmountC(String loanAmountC) {
		this.loanAmountC = loanAmountC;
	}

	public String getLoanAmountTotal() {
		return loanAmountTotal;
	}

	public void setLoanAmountTotal(String loanAmountTotal) {
		this.loanAmountTotal = loanAmountTotal;
	}

	public String getLoanToValueA() {
		return loanToValueA;
	}

	public void setLoanToValueA(String loanToValueA) {
		this.loanToValueA = loanToValueA;
	}

	public String getLoanToValueB() {
		return loanToValueB;
	}

	public void setLoanToValueB(String loanToValueB) {
		this.loanToValueB = loanToValueB;
	}

	public String getLoanToValueC() {
		return loanToValueC;
	}

	public void setLoanToValueC(String loanToValueC) {
		this.loanToValueC = loanToValueC;
	}

	public String getPaymentTypeA() {
		return paymentTypeA;
	}

	public void setPaymentTypeA(String paymentTypeA) {
		this.paymentTypeA = paymentTypeA;
	}

	public String getPaymentTypeB() {
		return paymentTypeB;
	}

	public void setPaymentTypeB(String paymentTypeB) {
		this.paymentTypeB = paymentTypeB;
	}

	public String getPaymentTypeC() {
		return paymentTypeC;
	}

	public void setPaymentTypeC(String paymentTypeC) {
		this.paymentTypeC = paymentTypeC;
	}

	public String getAmortizationA() {
		return amortizationA;
	}

	public void setAmortizationA(String amortizationA) {
		this.amortizationA = amortizationA;
	}

	public String getAmortizationB() {
		return amortizationB;
	}

	public void setAmortizationB(String amortizationB) {
		this.amortizationB = amortizationB;
	}

	public String getAmortizationC() {
		return amortizationC;
	}

	public void setAmortizationC(String amortizationC) {
		this.amortizationC = amortizationC;
	}

	public String getInterestRateA() {
		return interestRateA;
	}

	public void setInterestRateA(String interestRateA) {
		this.interestRateA = interestRateA;
	}

	public String getInterestRateB() {
		return interestRateB;
	}

	public void setInterestRateB(String interestRateB) {
		this.interestRateB = interestRateB;
	}

	public String getInterestRateC() {
		return interestRateC;
	}

	public void setInterestRateC(String interestRateC) {
		this.interestRateC = interestRateC;
	}

	public String getMonthlyIntRateA() {
		return monthlyIntRateA;
	}

	public void setMonthlyIntRateA(String monthlyIntRateA) {
		this.monthlyIntRateA = monthlyIntRateA;
	}

	public String getMonthlyIntRateB() {
		return monthlyIntRateB;
	}

	public void setMonthlyIntRateB(String monthlyIntRateB) {
		this.monthlyIntRateB = monthlyIntRateB;
	}

	public String getMonthlyIntRateC() {
		return monthlyIntRateC;
	}

	public void setMonthlyIntRateC(String monthlyIntRateC) {
		this.monthlyIntRateC = monthlyIntRateC;
	}

	public String getApplyMortgageInsuranceA() {
		return applyMortgageInsuranceA;
	}

	public void setApplyMortgageInsuranceA(String applyMortgageInsuranceA) {
		this.applyMortgageInsuranceA = applyMortgageInsuranceA;
	}

	public String getApplyMortgageInsuranceB() {
		return applyMortgageInsuranceB;
	}

	public void setApplyMortgageInsuranceB(String applyMortgageInsuranceB) {
		this.applyMortgageInsuranceB = applyMortgageInsuranceB;
	}

	public String getApplyMortgageInsuranceC() {
		return applyMortgageInsuranceC;
	}

	public void setApplyMortgageInsuranceC(String applyMortgageInsuranceC) {
		this.applyMortgageInsuranceC = applyMortgageInsuranceC;
	}

	public String getMortgagePremiumA() {
		return mortgagePremiumA;
	}

	public void setMortgagePremiumA(String mortgagePremiumA) {
		this.mortgagePremiumA = mortgagePremiumA;
	}

	public String getMortgagePremiumB() {
		return mortgagePremiumB;
	}

	public void setMortgagePremiumB(String mortgagePremiumB) {
		this.mortgagePremiumB = mortgagePremiumB;
	}

	public String getMortgagePremiumC() {
		return mortgagePremiumC;
	}

	public void setMortgagePremiumC(String mortgagePremiumC) {
		this.mortgagePremiumC = mortgagePremiumC;
	}

	public String getCmhcFeeA() {
		return cmhcFeeA;
	}

	public void setCmhcFeeA(String cmhcFeeA) {
		this.cmhcFeeA = cmhcFeeA;
	}

	public String getCmhcFeeB() {
		return cmhcFeeB;
	}

	public void setCmhcFeeB(String cmhcFeeB) {
		this.cmhcFeeB = cmhcFeeB;
	}

	public String getCmhcFeeC() {
		return cmhcFeeC;
	}

	public void setCmhcFeeC(String cmhcFeeC) {
		this.cmhcFeeC = cmhcFeeC;
	}

	public String getCmhcFeeTotal() {
		return cmhcFeeTotal;
	}

	public void setCmhcFeeTotal(String cmhcFeeTotal) {
		this.cmhcFeeTotal = cmhcFeeTotal;
	}

	public String getYear1PPDA() {
		return year1PPDA;
	}

	public void setYear1PPDA(String year1ppda) {
		year1PPDA = year1ppda;
	}

	public String getYear1PPDB() {
		return year1PPDB;
	}

	public void setYear1PPDB(String year1ppdb) {
		year1PPDB = year1ppdb;
	}

	public String getYear1PPDC() {
		return year1PPDC;
	}

	public void setYear1PPDC(String year1ppdc) {
		year1PPDC = year1ppdc;
	}

	public String getYear1PPDTotal() {
		return year1PPDTotal;
	}

	public void setYear1PPDTotal(String year1ppdTotal) {
		year1PPDTotal = year1ppdTotal;
	}

	public String getMonthlyPaymentA() {
		return monthlyPaymentA;
	}

	public void setMonthlyPaymentA(String monthlyPaymentA) {
		this.monthlyPaymentA = monthlyPaymentA;
	}

	public String getMonthlyPaymentB() {
		return monthlyPaymentB;
	}

	public void setMonthlyPaymentB(String monthlyPaymentB) {
		this.monthlyPaymentB = monthlyPaymentB;
	}

	public String getMonthlyPaymentC() {
		return monthlyPaymentC;
	}

	public void setMonthlyPaymentC(String monthlyPaymentC) {
		this.monthlyPaymentC = monthlyPaymentC;
	}

	public String getMonthlyPaymentTotal() {
		return monthlyPaymentTotal;
	}

	public void setMonthlyPaymentTotal(String monthlyPaymentTotal) {
		this.monthlyPaymentTotal = monthlyPaymentTotal;
	}

	public String getNetOperatingIncomeA() {
		return netOperatingIncomeA;
	}

	public void setNetOperatingIncomeA(String netOperatingIncomeA) {
		this.netOperatingIncomeA = netOperatingIncomeA;
	}

	public String getNetOperatingIncomeB() {
		return netOperatingIncomeB;
	}

	public void setNetOperatingIncomeB(String netOperatingIncomeB) {
		this.netOperatingIncomeB = netOperatingIncomeB;
	}

	public String getAnnualDebtServiceA() {
		return annualDebtServiceA;
	}

	public void setAnnualDebtServiceA(String annualDebtServiceA) {
		this.annualDebtServiceA = annualDebtServiceA;
	}

	public String getAnnualDebtServiceB() {
		return annualDebtServiceB;
	}

	public void setAnnualDebtServiceB(String annualDebtServiceB) {
		this.annualDebtServiceB = annualDebtServiceB;
	}

	public String getTotalCashflowA() {
		return totalCashflowA;
	}

	public void setTotalCashflowA(String totalCashflowA) {
		this.totalCashflowA = totalCashflowA;
	}

	public String getTotalCashflowB() {
		return totalCashflowB;
	}

	public void setTotalCashflowB(String totalCashflowB) {
		this.totalCashflowB = totalCashflowB;
	}

	public String getCostPerDoorActual() {
		return costPerDoorActual;
	}

	public void setCostPerDoorActual(String costPerDoorActual) {
		this.costPerDoorActual = costPerDoorActual;
	}

	public String getCostPerDoorTarget() {
		return costPerDoorTarget;
	}

	public void setCostPerDoorTarget(String costPerDoorTarget) {
		this.costPerDoorTarget = costPerDoorTarget;
	}

	public String getGrossRentMultiplierActual() {
		return grossRentMultiplierActual;
	}

	public void setGrossRentMultiplierActual(String grossRentMultiplierActual) {
		this.grossRentMultiplierActual = grossRentMultiplierActual;
	}

	public String getGrossRentMultiplierTarget() {
		return grossRentMultiplierTarget;
	}

	public void setGrossRentMultiplierTarget(String grossRentMultiplierTarget) {
		this.grossRentMultiplierTarget = grossRentMultiplierTarget;
	}

	public String getCapRateActual() {
		return capRateActual;
	}

	public void setCapRateActual(String capRateActual) {
		this.capRateActual = capRateActual;
	}

	public String getCapRateTarget() {
		return capRateTarget;
	}

	public void setCapRateTarget(String capRateTarget) {
		this.capRateTarget = capRateTarget;
	}

	public String getCashOnCashReturnActual() {
		return cashOnCashReturnActual;
	}

	public void setCashOnCashReturnActual(String cashOnCashReturnActual) {
		this.cashOnCashReturnActual = cashOnCashReturnActual;
	}

	public String getCashOnCashReturnTarget() {
		return cashOnCashReturnTarget;
	}

	public void setCashOnCashReturnTarget(String cashOnCashReturnTarget) {
		this.cashOnCashReturnTarget = cashOnCashReturnTarget;
	}

	public String getRoiPPDActual() {
		return roiPPDActual;
	}

	public void setRoiPPDActual(String roiPPDActual) {
		this.roiPPDActual = roiPPDActual;
	}

	public String getRoiPPDTarget() {
		return roiPPDTarget;
	}

	public void setRoiPPDTarget(String roiPPDTarget) {
		this.roiPPDTarget = roiPPDTarget;
	}

	public String getRoiPPDGrowthActual() {
		return roiPPDGrowthActual;
	}

	public void setRoiPPDGrowthActual(String roiPPDGrowthActual) {
		this.roiPPDGrowthActual = roiPPDGrowthActual;
	}

	public String getRoiPPDGrowthTarget() {
		return roiPPDGrowthTarget;
	}

	public void setRoiPPDGrowthTarget(String roiPPDGrowthTarget) {
		this.roiPPDGrowthTarget = roiPPDGrowthTarget;
	}

	public String getAvgProfitPerDoorActual() {
		return avgProfitPerDoorActual;
	}

	public void setAvgProfitPerDoorActual(String avgProfitPerDoorActual) {
		this.avgProfitPerDoorActual = avgProfitPerDoorActual;
	}

	public String getAvgProfitPerDoorTarget() {
		return avgProfitPerDoorTarget;
	}

	public void setAvgProfitPerDoorTarget(String avgProfitPerDoorTarget) {
		this.avgProfitPerDoorTarget = avgProfitPerDoorTarget;
	}

	public String getDebtCoverageRatioActual() {
		return debtCoverageRatioActual;
	}

	public void setDebtCoverageRatioActual(String debtCoverageRatioActual) {
		this.debtCoverageRatioActual = debtCoverageRatioActual;
	}

	public String getDebtCoverageRatioTarget() {
		return debtCoverageRatioTarget;
	}

	public void setDebtCoverageRatioTarget(String debtCoverageRatioTarget) {
		this.debtCoverageRatioTarget = debtCoverageRatioTarget;
	}

	public String getPaybackPeriodActual() {
		return paybackPeriodActual;
	}

	public void setPaybackPeriodActual(String paybackPeriodActual) {
		this.paybackPeriodActual = paybackPeriodActual;
	}

	public String getPaybackPeriodTarget() {
		return paybackPeriodTarget;
	}

	public void setPaybackPeriodTarget(String paybackPeriodTarget) {
		this.paybackPeriodTarget = paybackPeriodTarget;
	}

	public String getEstProjectedCashFlow() {
		return estProjectedCashFlow;
	}

	public void setEstProjectedCashFlow(String estProjectedCashFlow) {
		this.estProjectedCashFlow = estProjectedCashFlow;
	}

	public String getYr1PPD() {
		return yr1PPD;
	}

	public void setYr1PPD(String yr1ppd) {
		yr1PPD = yr1ppd;
	}

	public String getDepreciation() {
		return depreciation;
	}

	public void setDepreciation(String depreciation) {
		this.depreciation = depreciation;
	}

	public String getMortgageInsExpense() {
		return mortgageInsExpense;
	}

	public void setMortgageInsExpense(String mortgageInsExpense) {
		this.mortgageInsExpense = mortgageInsExpense;
	}

	public String getPotentialTaxIncome() {
		return potentialTaxIncome;
	}

	public void setPotentialTaxIncome(String potentialTaxIncome) {
		this.potentialTaxIncome = potentialTaxIncome;
	}

	public String getAppraisalFee1A() {
		return appraisalFee1A;
	}

	public void setAppraisalFee1A(String appraisalFee1A) {
		this.appraisalFee1A = appraisalFee1A;
	}

	public String getAppraisalFee1B() {
		return appraisalFee1B;
	}

	public void setAppraisalFee1B(String appraisalFee1B) {
		this.appraisalFee1B = appraisalFee1B;
	}

	public String getAppraisalFee1C() {
		return appraisalFee1C;
	}

	public void setAppraisalFee1C(String appraisalFee1C) {
		this.appraisalFee1C = appraisalFee1C;
	}

	public String getAppraisalFee2A() {
		return appraisalFee2A;
	}

	public void setAppraisalFee2A(String appraisalFee2A) {
		this.appraisalFee2A = appraisalFee2A;
	}

	public String getAppraisalFee2B() {
		return appraisalFee2B;
	}

	public void setAppraisalFee2B(String appraisalFee2B) {
		this.appraisalFee2B = appraisalFee2B;
	}

	public String getAppraisalFee2C() {
		return appraisalFee2C;
	}

	public void setAppraisalFee2C(String appraisalFee2C) {
		this.appraisalFee2C = appraisalFee2C;
	}

	public String getAppraisalFee3A() {
		return appraisalFee3A;
	}

	public void setAppraisalFee3A(String appraisalFee3A) {
		this.appraisalFee3A = appraisalFee3A;
	}

	public String getAppraisalFee3B() {
		return appraisalFee3B;
	}

	public void setAppraisalFee3B(String appraisalFee3B) {
		this.appraisalFee3B = appraisalFee3B;
	}

	public String getAppraisalFee3C() {
		return appraisalFee3C;
	}

	public void setAppraisalFee3C(String appraisalFee3C) {
		this.appraisalFee3C = appraisalFee3C;
	}

	public String getAppraisalFee4A() {
		return appraisalFee4A;
	}

	public void setAppraisalFee4A(String appraisalFee4A) {
		this.appraisalFee4A = appraisalFee4A;
	}

	public String getAppraisalFee4B() {
		return appraisalFee4B;
	}

	public void setAppraisalFee4B(String appraisalFee4B) {
		this.appraisalFee4B = appraisalFee4B;
	}

	public String getAppraisalFee4C() {
		return appraisalFee4C;
	}

	public void setAppraisalFee4C(String appraisalFee4C) {
		this.appraisalFee4C = appraisalFee4C;
	}

	public String getLegalFee1A() {
		return legalFee1A;
	}

	public void setLegalFee1A(String legalFee1A) {
		this.legalFee1A = legalFee1A;
	}

	public String getLegalFee1B() {
		return legalFee1B;
	}

	public void setLegalFee1B(String legalFee1B) {
		this.legalFee1B = legalFee1B;
	}

	public String getLegalFee1C() {
		return legalFee1C;
	}

	public void setLegalFee1C(String legalFee1C) {
		this.legalFee1C = legalFee1C;
	}

	public String getLegalFee2A() {
		return legalFee2A;
	}

	public void setLegalFee2A(String legalFee2A) {
		this.legalFee2A = legalFee2A;
	}

	public String getLegalFee2B() {
		return legalFee2B;
	}

	public void setLegalFee2B(String legalFee2B) {
		this.legalFee2B = legalFee2B;
	}

	public String getLegalFee2C() {
		return legalFee2C;
	}

	public void setLegalFee2C(String legalFee2C) {
		this.legalFee2C = legalFee2C;
	}

	public String getLegalFee3A() {
		return legalFee3A;
	}

	public void setLegalFee3A(String legalFee3A) {
		this.legalFee3A = legalFee3A;
	}

	public String getLegalFee3B() {
		return legalFee3B;
	}

	public void setLegalFee3B(String legalFee3B) {
		this.legalFee3B = legalFee3B;
	}

	public String getLegalFee3C() {
		return legalFee3C;
	}

	public void setLegalFee3C(String legalFee3C) {
		this.legalFee3C = legalFee3C;
	}

	public String getLegalFee4A() {
		return legalFee4A;
	}

	public void setLegalFee4A(String legalFee4A) {
		this.legalFee4A = legalFee4A;
	}

	public String getLegalFee4B() {
		return legalFee4B;
	}

	public void setLegalFee4B(String legalFee4B) {
		this.legalFee4B = legalFee4B;
	}

	public String getLegalFee4C() {
		return legalFee4C;
	}

	public void setLegalFee4C(String legalFee4C) {
		this.legalFee4C = legalFee4C;
	}

	public String getInspectionFee1A() {
		return inspectionFee1A;
	}

	public void setInspectionFee1A(String inspectionFee1A) {
		this.inspectionFee1A = inspectionFee1A;
	}

	public String getInspectionFee1B() {
		return inspectionFee1B;
	}

	public void setInspectionFee1B(String inspectionFee1B) {
		this.inspectionFee1B = inspectionFee1B;
	}

	public String getInspectionFee1C() {
		return inspectionFee1C;
	}

	public void setInspectionFee1C(String inspectionFee1C) {
		this.inspectionFee1C = inspectionFee1C;
	}

	public String getInspectionFee2A() {
		return inspectionFee2A;
	}

	public void setInspectionFee2A(String inspectionFee2A) {
		this.inspectionFee2A = inspectionFee2A;
	}

	public String getInspectionFee2B() {
		return inspectionFee2B;
	}

	public void setInspectionFee2B(String inspectionFee2B) {
		this.inspectionFee2B = inspectionFee2B;
	}

	public String getInspectionFee2C() {
		return inspectionFee2C;
	}

	public void setInspectionFee2C(String inspectionFee2C) {
		this.inspectionFee2C = inspectionFee2C;
	}

	public String getInspectionFee3A() {
		return inspectionFee3A;
	}

	public void setInspectionFee3A(String inspectionFee3A) {
		this.inspectionFee3A = inspectionFee3A;
	}

	public String getInspectionFee3B() {
		return inspectionFee3B;
	}

	public void setInspectionFee3B(String inspectionFee3B) {
		this.inspectionFee3B = inspectionFee3B;
	}

	public String getInspectionFee3C() {
		return inspectionFee3C;
	}

	public void setInspectionFee3C(String inspectionFee3C) {
		this.inspectionFee3C = inspectionFee3C;
	}

	public String getInspectionFee4A() {
		return inspectionFee4A;
	}

	public void setInspectionFee4A(String inspectionFee4A) {
		this.inspectionFee4A = inspectionFee4A;
	}

	public String getInspectionFee4B() {
		return inspectionFee4B;
	}

	public void setInspectionFee4B(String inspectionFee4B) {
		this.inspectionFee4B = inspectionFee4B;
	}

	public String getInspectionFee4C() {
		return inspectionFee4C;
	}

	public void setInspectionFee4C(String inspectionFee4C) {
		this.inspectionFee4C = inspectionFee4C;
	}

	public String getCmhc1() {
		return cmhc1;
	}

	public void setCmhc1(String cmhc1) {
		this.cmhc1 = cmhc1;
	}

	public String getCmhc2() {
		return cmhc2;
	}

	public void setCmhc2(String cmhc2) {
		this.cmhc2 = cmhc2;
	}

	public String getCmhc3() {
		return cmhc3;
	}

	public void setCmhc3(String cmhc3) {
		this.cmhc3 = cmhc3;
	}

	public String getCmhc4() {
		return cmhc4;
	}

	public void setCmhc4(String cmhc4) {
		this.cmhc4 = cmhc4;
	}

	public String getCmhc5() {
		return cmhc5;
	}

	public void setCmhc5(String cmhc5) {
		this.cmhc5 = cmhc5;
	}

	public String getCmhc6() {
		return cmhc6;
	}

	public void setCmhc6(String cmhc6) {
		this.cmhc6 = cmhc6;
	}

	public String getCmhc7() {
		return cmhc7;
	}

	public void setCmhc7(String cmhc7) {
		this.cmhc7 = cmhc7;
	}

	public String getCmhc8() {
		return cmhc8;
	}

	public void setCmhc8(String cmhc8) {
		this.cmhc8 = cmhc8;
	}

	public String getCmhcB1() {
		return cmhcB1;
	}

	public void setCmhcB1(String cmhcB1) {
		this.cmhcB1 = cmhcB1;
	}

	public String getCmhcB2() {
		return cmhcB2;
	}

	public void setCmhcB2(String cmhcB2) {
		this.cmhcB2 = cmhcB2;
	}

	public String getCmhcB3() {
		return cmhcB3;
	}

	public void setCmhcB3(String cmhcB3) {
		this.cmhcB3 = cmhcB3;
	}

	public String getCmhcB4() {
		return cmhcB4;
	}

	public void setCmhcB4(String cmhcB4) {
		this.cmhcB4 = cmhcB4;
	}

	public String getCmhcB5() {
		return cmhcB5;
	}

	public void setCmhcB5(String cmhcB5) {
		this.cmhcB5 = cmhcB5;
	}

	public String getCmhcB6() {
		return cmhcB6;
	}

	public void setCmhcB6(String cmhcB6) {
		this.cmhcB6 = cmhcB6;
	}

	public String getCmhcB7() {
		return cmhcB7;
	}

	public void setCmhcB7(String cmhcB7) {
		this.cmhcB7 = cmhcB7;
	}

	public String getCmhcB8() {
		return cmhcB8;
	}

	public void setCmhcB8(String cmhcB8) {
		this.cmhcB8 = cmhcB8;
	}

	public String getCmhcB9() {
		return cmhcB9;
	}

	public void setCmhcB9(String cmhcB9) {
		this.cmhcB9 = cmhcB9;
	}

	public String getCmhcB10() {
		return cmhcB10;
	}

	public void setCmhcB10(String cmhcB10) {
		this.cmhcB10 = cmhcB10;
	}

	public String getTransferTax1A() {
		return transferTax1A;
	}

	public void setTransferTax1A(String transferTax1A) {
		this.transferTax1A = transferTax1A;
	}

	public String getTransferTax1B() {
		return transferTax1B;
	}

	public void setTransferTax1B(String transferTax1B) {
		this.transferTax1B = transferTax1B;
	}

	public String getTransferTax2A() {
		return transferTax2A;
	}

	public void setTransferTax2A(String transferTax2A) {
		this.transferTax2A = transferTax2A;
	}

	public String getTransferTax2B() {
		return transferTax2B;
	}

	public void setTransferTax2B(String transferTax2B) {
		this.transferTax2B = transferTax2B;
	}

	public String getTransferTax3A() {
		return transferTax3A;
	}

	public void setTransferTax3A(String transferTax3A) {
		this.transferTax3A = transferTax3A;
	}

	public String getTransferTax3B() {
		return transferTax3B;
	}

	public void setTransferTax3B(String transferTax3B) {
		this.transferTax3B = transferTax3B;
	}

	public String getTransferTax4A() {
		return transferTax4A;
	}

	public void setTransferTax4A(String transferTax4) {
		this.transferTax4A = transferTax4;
	}

	public boolean isOverrideAppraisal() {
		return overrideAppraisal;
	}

	public void setOverrideAppraisal(boolean overrideAppraisal) {
		this.overrideAppraisal = overrideAppraisal;
	}

	public boolean isOverrideLegalFees() {
		return overrideLegalFees;
	}

	public void setOverrideLegalFees(boolean overrideLegalFees) {
		this.overrideLegalFees = overrideLegalFees;
	}

	public boolean isOverrideInspection() {
		return overrideInspection;
	}

	public void setOverrideInspection(boolean overrideInspection) {
		this.overrideInspection = overrideInspection;
	}

	public boolean isOverrideLandXferTax() {
		return overrideLandXferTax;
	}

	public void setOverrideLandXferTax(boolean overrideLandXferTax) {
		this.overrideLandXferTax = overrideLandXferTax;
	}

	public boolean isOverrideMaintenance() {
		return overrideMaintenance;
	}

	public void setOverrideMaintenance(boolean overrideMaintenance) {
		this.overrideMaintenance = overrideMaintenance;
	}

	public boolean isOverrideManagement() {
		return overrideManagement;
	}

	public void setOverrideManagement(boolean overrideManagement) {
		this.overrideManagement = overrideManagement;
	}

	public boolean isOverrideLoanAmountA() {
		return overrideLoanAmountA;
	}

	public void setOverrideLoanAmountA(boolean overrideLoanAmountA) {
		this.overrideLoanAmountA = overrideLoanAmountA;
	}

	public boolean isOverrideLoanAmountB() {
		return overrideLoanAmountB;
	}

	public void setOverrideLoanAmountB(boolean overrideLoanAmountB) {
		this.overrideLoanAmountB = overrideLoanAmountB;
	}

	public boolean isOverrideLoanAmountC() {
		return overrideLoanAmountC;
	}

	public void setOverrideLoanAmountC(boolean overrideLoanAmountC) {
		this.overrideLoanAmountC = overrideLoanAmountC;
	}

	public boolean isOverrideCMHCA() {
		return overrideCMHCA;
	}

	public void setOverrideCMHCA(boolean overrideCMHCA) {
		this.overrideCMHCA = overrideCMHCA;
	}

	public boolean isOverrideCMHCB() {
		return overrideCMHCB;
	}

	public void setOverrideCMHCB(boolean overrideCMHCB) {
		this.overrideCMHCB = overrideCMHCB;
	}

	public boolean isOverrideCMHCC() {
		return overrideCMHCC;
	}

	public void setOverrideCMHCC(boolean overrideCMHCC) {
		this.overrideCMHCC = overrideCMHCC;
	}

	public LinkedList<Updateable> getPanels() {
		return panels;
	}

	public void setPanels(LinkedList<Updateable> panels) {
		this.panels = panels;
	}

	public String getPropertyTaxesPercentage() {
		return propertyTaxesPercentage;
	}

	public void setPropertyTaxesPercentage(String propertyTaxesPercentage) {
		this.propertyTaxesPercentage = propertyTaxesPercentage;
	}

	public String getInsurancePercentage() {
		return insurancePercentage;
	}

	public void setInsurancePercentage(String insurancePercentage) {
		this.insurancePercentage = insurancePercentage;
	}

	public String getWaterSewerPercentage() {
		return waterSewerPercentage;
	}

	public void setWaterSewerPercentage(String waterSewerPercentage) {
		this.waterSewerPercentage = waterSewerPercentage;
	}

	public String getHeatPercentage() {
		return heatPercentage;
	}

	public void setHeatPercentage(String heatPercentage) {
		this.heatPercentage = heatPercentage;
	}

	public String getHydroPercentage() {
		return hydroPercentage;
	}

	public void setHydroPercentage(String hydroPercentage) {
		this.hydroPercentage = hydroPercentage;
	}

	public String getMaintenancePercentage() {
		return maintenancePercentage;
	}

	public void setMaintenancePercentage(String maintenancePercentage) {
		this.maintenancePercentage = maintenancePercentage;
	}

	public String getManagementPercentage() {
		return managementPercentage;
	}

	public void setManagementPercentage(String managementPercentage) {
		this.managementPercentage = managementPercentage;
	}

	public String getSnowRemovalPercentage() {
		return snowRemovalPercentage;
	}

	public void setSnowRemovalPercentage(String snowRemovalPercentage) {
		this.snowRemovalPercentage = snowRemovalPercentage;
	}

	public String getSuperIntendantPercentage() {
		return superIntendantPercentage;
	}

	public void setSuperIntendantPercentage(String superIntendantPercentage) {
		this.superIntendantPercentage = superIntendantPercentage;
	}

	public String getAdvertisingPercentage() {
		return advertisingPercentage;
	}

	public void setAdvertisingPercentage(String advertisingPercentage) {
		this.advertisingPercentage = advertisingPercentage;
	}

	public String getSuppliesPercentage() {
		return suppliesPercentage;
	}

	public void setSuppliesPercentage(String suppliesPercentage) {
		this.suppliesPercentage = suppliesPercentage;
	}

	public String getGarbagePercentage() {
		return garbagePercentage;
	}

	public void setGarbagePercentage(String garbagePercentage) {
		this.garbagePercentage = garbagePercentage;
	}

	public String getLawnPercentage() {
		return lawnPercentage;
	}

	public void setLawnPercentage(String lawnPercentage) {
		this.lawnPercentage = lawnPercentage;
	}

	public String getLicensesPercentage() {
		return licensesPercentage;
	}

	public void setLicensesPercentage(String licensesPercentage) {
		this.licensesPercentage = licensesPercentage;
	}

	public String getAccountingPercentage() {
		return accountingPercentage;
	}

	public void setAccountingPercentage(String accoutingPercentage) {
		this.accountingPercentage = accoutingPercentage;
	}

	public String getLegalPercentage() {
		return legalPercentage;
	}

	public void setLegalPercentage(String legalPercentage) {
		this.legalPercentage = legalPercentage;
	}

	public String getCleaningPercentage() {
		return cleaningPercentage;
	}

	public void setCleaningPercentage(String cleaningPercentage) {
		this.cleaningPercentage = cleaningPercentage;
	}

	public String getPoolPercentage() {
		return poolPercentage;
	}

	public void setPoolPercentage(String poolPercentage) {
		this.poolPercentage = poolPercentage;
	}

	public String getElevatorPercentage() {
		return elevatorPercentage;
	}

	public void setElevatorPercentage(String elevatorPercentage) {
		this.elevatorPercentage = elevatorPercentage;
	}

	public String getPestControlPercentage() {
		return pestControlPercentage;
	}

	public void setPestControlPercentage(String pestControlPercentage) {
		this.pestControlPercentage = pestControlPercentage;
	}

	public String getReplacementsPercentage() {
		return replacementsPercentage;
	}

	public void setReplacementsPercentage(String replacementsPercentage) {
		this.replacementsPercentage = replacementsPercentage;
	}

	public String getCondoFeesPercentage() {
		return condoFeesPercentage;
	}

	public void setCondoFeesPercentage(String condoFeesPercentage) {
		this.condoFeesPercentage = condoFeesPercentage;
	}

	public String getOtherExpensesPercentage() {
		return otherExpensesPercentage;
	}

	public void setOtherExpensesPercentage(String otherExpensesPercentage) {
		this.otherExpensesPercentage = otherExpensesPercentage;
	}

	public String getTotalExpensesPercentage() {
		return totalExpensesPercentage;
	}

	public void setTotalExpensesPercentage(String totalExpensesPercentage) {
		this.totalExpensesPercentage = totalExpensesPercentage;
	}

	public String getOptional1Label() {
		return optional1Label;
	}

	public void setOptional1Label(String optional1Label) {
		this.optional1Label = optional1Label;
	}

	public String getOptional1Field() {
		return optional1Field;
	}

	public void setOptional1Field(String optional1Field) {
		this.optional1Field = optional1Field;
	}

	public String getOptional1Percentage() {
		return optional1Percentage;
	}

	public void setOptional1Percentage(String optional1Percentage) {
		this.optional1Percentage = optional1Percentage;
	}

	public String getOptional2Label() {
		return optional2Label;
	}

	public void setOptional2Label(String optional2Label) {
		this.optional2Label = optional2Label;
	}

	public String getOptional2Field() {
		return optional2Field;
	}

	public void setOptional2Field(String optional2Field) {
		this.optional2Field = optional2Field;
	}

	public String getOptional2Percentage() {
		return optional2Percentage;
	}

	public void setOptional2Percentage(String optional2Percentage) {
		this.optional2Percentage = optional2Percentage;
	}

	public String getRoiPPDGrowthLabel() {
		return roiPPDGrowthLabel;
	}

	public void setRoiPPDGrowthLabel(String roiPPDGrowthLabel) {
		this.roiPPDGrowthLabel = roiPPDGrowthLabel;
	}

	public Vector<JTextField> getMonthlyFields() {
		return monthlyFields;
	}

	public void setMonthlyFields(Vector<JTextField> monthlyFields) {
		this.monthlyFields = monthlyFields;
	}

	public Vector<JTextField> getYearlyFields() {
		return yearlyFields;
	}

	public void setYearlyFields(Vector<JTextField> yearlyFields) {
		this.yearlyFields = yearlyFields;
	}

	public Vector<JLabel> getNumberLabels() {
		return numberLabels;
	}

	public void setNumberLabels(Vector<JLabel> numberLabels) {
		this.numberLabels = numberLabels;
	}

	public String getYearlyRentTotal() {
		return yearlyRentTotal;
	}

	public void setYearlyRentTotal(String yearlyRentTotal) {
		this.yearlyRentTotal = yearlyRentTotal;
	}

	public JLabel getYearlyRentLabel() {
		return yearlyRentLabel;
	}

	public void setYearlyRentLabel(JLabel yearlyRentLabel) {
		this.yearlyRentLabel = yearlyRentLabel;
	}

	public boolean isOverrideRent() {
		return overrideRent;
	}

	public void setOverrideRent(boolean overrideRent) {
		this.overrideRent = overrideRent;
	}

}
